0
で実装するOkHttp使用しているとき、私はPOSTリクエストを送信するために使用するクラスのとき:エラーコード400連発でPOSTリクエストを実装するではなく、下記のOkHttp
public class PostExample {
private static final MediaType JSON
= MediaType.parse("application/json;");
private OkHttpClient client = new OkHttpClient();
String post(String url, String json) throws IOException {
RequestBody body = RequestBody.create(JSON, json);
Request request = new Request.Builder()
.url(url)
.post(body)
.build();
try (Response response = client.newCall(request).execute()) {
return response.body().string();
}
}
String bowlingJson(String user, String password) {
String str = "{" +
"\"username\": \"" + user + "\", " +
"\"password\": \"" + password + "\"" +
"}";
System.out.println(str);
return str;
}
public static void main(String[] args) throws IOException {
PostExample example = new PostExample();
String json = example.bowlingJson(args[0], args[1]);
String response = example.post("http://192.168.43.123:8000/api/jwt-auth/", json);
System.out.println(args[0] + " " + args[1]);
System.out.println(response);
}
}
これは正常に動作し、それは私を与えますJSONオブジェクトを応答する文字列として返します。 そして、下記のは、それは私に400エラー
publicクラスを与えていることだけ違い、バレーボールで使用し、ほぼ同じものであるPostAssistant {
private Context context;
private RequestQueue queue;
public PostAssistant(Context context) {
this.context = context;
queue = Volley.newRequestQueue(context);
}
private void post(String url, final String user , final String password) throws IOException {
StringRequest postRequest = new StringRequest(Request.Method.POST, url,
new Response.Listener<String>()
{
@Override
public void onResponse(String response) {
// response
Log.d("Response", response);
}
},
new Response.ErrorListener()
{
@Override
public void onErrorResponse(VolleyError error) {
// error
Log.d("Error.Response", "");
}
}
)
{
@Override
protected Map<String, String> getParams()
{
Map<String, String> params = new HashMap<>();
params.put("username", user);
params.put("password", password);
return params;
}
@Override
public String getBodyContentType()
{
return "application/json";
}
};
queue.add(postRequest);
}
private void connect(String user, String password) throws IOException {
post(Constants.loginUrl , user , password);
}
public void connect(String[] args) throws IOException {
connect(args[0] , args[1]);
}
}
logcatに示すように、これは誤りです。
E/Volley: [5322] BasicNetwork.performRequest: Unexpected response code 400 for http://192.168.43.123:8000/api/jwt-auth/