私はWeb API設定を行い、APIのエンドポイントの1つにJSONオブジェクト(APIでは.NETオブジェクトに解決されます)が使用されます。volleyを使用してWebサービスコールを作成する
私は成功した後にエンドポイントを呼び出すことができますポストマンを使用して、ここにURL
https://example.com/api/helprequests
そして、ここでは私が
{"Title":"Test Title", "Message":"Test Message"}
すべてが、ポストマンに適していますポストマンリクエストに含めるJSONです私はVolleyを使ってAndroidアプリからこのAPIを呼び出そうとしています。私はこれを実行すると、ここで
は、関連するコードが
String webAddress = "http://example.com/api/helprequests/";
RequestQueue queue = Volley.newRequestQueue(this);
StringRequest stringRequest = new StringRequest(Request.Method.POST, webAddress,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d("RESPONSE", response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d("RESPONSE", "That didn't work!");
}
}) {
@Override
public String getBodyContentType() {
return "application/json";
}
@Override
public byte[] getBody() throws AuthFailureError {
try {
Map<String, String> params = new HashMap<String, String>();
params.put("Title","Test title");
params.put("Message", "Test message");
} catch (Exception ex) {
VolleyLog.wtf("Unsupported Encoding");
return null;
}
return null;
}
};
queue.add(stringRequest);
である私は、次のエラーを取得する:
E/Volley: [50225] BasicNetwork.performRequest: Unexpected response code 500 for https://example.com/api/helprequests
私はバレーボールリクエストにPOSTデータを追加するにはどうすればよいですか?
タイトルとメッセージは、体内ではなく、ヘッダーにすることになっていますか?また、あなたはBodyでnullを返しています。 – Enzokie
私はタイトルとメッセージが本文にあるべきだと思う - getBodyの目的は何ですか?私はこれをオンラインで複数の場所から集めました。 – andrewb
'getBody'を使わないでください。あなたはJSONを持っています。 VolleyにはJSONクラスがあります。 http://afzaln.com/volley/com/android/volley/toolbox/JsonObjectRequest.html –