Content-Typeをapplication/jsonに設定し、名前と電子メールをいくつかのキーとして設定したいサーバーにPOSTリクエストを実行しようとしています。現在、406エラーが発生していますが、これはサーバー側で作業していると仮定していますが、アンドロイドは応答を処理できません。どのようにコードを微調整して200の応答を得ることができますか?アンドロイドのjsonでこのPOST要求に問題がありますか?
HttpClient client = new DefaultHttpClient();
HttpEntity entity;
try{
JSONObject j = new JSONObject();
j.put("name" , myName);
j.put("email", myEmail);
HttpPost post = new HttpPost(targetURL);
post.setHeader("Content-Type", "application/json");
StringEntity se = new StringEntity(j.toString(), HTTP.UTF_8);
se.setContentType("application/json");
post.setEntity(se);
HttpResponse response = client.execute(post);
entity = response.getEntity();
Log.d("response", response.getStatusLine().toString());
} catch(Exception e){Log.e("exception", e.toString());}
これは正しく表示されますか。 HttpClientを作成するときに、これらの応答ハンドラの1つが必要ですか?
どのサーバーにポストしていますか?それを制御するのか、それともそのコードを持っていますか?あなたはサーバーが受け取っているものを確認できますか?サーバーやそのコードにアクセスできない場合は、開発マシンにTomcatインスタンスを設定し、それを使ってテストすることができます。 –
はJSONキー名が正しいですか?送信する必要がある追加のヘッダーがありますか? – dldnh
残念ながら、私はサーバーにアクセスできません。私は他のヘッダ(このヘッダを受け入れるなど)を送る必要があるかどうかもわかりません – nectarsac