저는 일반적으로 발리와 안드로이드를 처음 접했습니다. 아래 코드 발췌 문장 (안드로이드 발리를 사용하여) 나는 실행하려고하지만 서버가 400을 반환합니다. 다른 REST 클라이언트를 사용하면 완벽하게 작동합니다. PUT 메소드를 사용하여 서버에 요청합니다.Android 발리 PUT 요청
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
sendRequest();
}
private void sendRequest() {
RequestQueue queue = Volley.newRequestQueue(this);
final JSONObject jsonObject = new JSONObject();
try {
jsonObject.put("password", "ttttt");
jsonObject.put("username", "tester3");
jsonObject.put("token", "blah");
} catch (JSONException e) {
// handle exception
}
JsonObjectRequest putRequest = new JsonObjectRequest(Request.Method.PUT, url, jsonObject,
new Response.Listener<JSONObject>()
{
@Override
public void onResponse(JSONObject response) {
// response
Log.d("Response", response.toString());
}
},
new Response.ErrorListener()
{
@Override
public void onErrorResponse(VolleyError error) {
// error
Log.d("Error.Response", error.toString());
}
}
) {
@Override
public Map<String, String> getHeaders()
{
Map<String, String> headers = new HashMap<String, String>();
headers.put("Content-Type", "application/json");
headers.put("Accept", "application/json");
return headers;
}
@Override
public byte[] getBody() {
try {
Log.i("json", jsonObject.toString());
return jsonObject.toString().getBytes("UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return null;
}
};
queue.add(putRequest);
}
이 코드를 실행할 때 항상 400 개의 잘못된 요청이 다시 발생하고 이유를 파악할 수 없습니다. Postman과 같은 다른 클라이언트를 사용하면 예상대로 작동합니다. 다음은 우편 배달부 요청은 다음과 같습니다
원시 요청 :
{ "토큰": "ㅋ", "비밀번호": "은 ttttt" "사용자 이름": "tester3" }
Headers: Content-Type: application/json
요청에 아무 것도 보이지 않습니다. 누군가 내가 잘못하고있는 것을 지적 할 수 있기를 바랍니다.
해결책을 찾았습니까? 나는 또한 같은 상황에 처해있다. – RmK
나는 두려워하지 않고 시간을 다 써 버렸고 개조를 사용했다. – WolfBane
심지어 나는 시간이 없어. 체크 아웃을 갱신했지만 단기간에 파악할 수는 없습니다. 그러나 귀하의 질문은 문제를 해결하는 데 도움이되었습니다. 012erspput (Accept "Accept", "application/json") 헤더를 추가했습니다. 감사합니다. – RmK