現在、サーバーと対話する必要があるアプリケーションを開発していますが、POST 経由でデータを受信する際に問題があります。私はDjangoを使用していますが、単純なビューから受け取っているのは次のとおりです:
<QueryDict: {u'c\r\nlogin': [u'woo']}>
{'login': 'woooow'}である必要があります。
ビューは次のとおりです。
def getDataByPost(request):
print '\n\n\n'
print request.POST
return HttpResponse('')
そして、sdkのsrcファイルで私がしたこと:
URL url = new URL("http://192.168.0.148:8000/data_by_post");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setDoInput(true);
urlConnection.setDoOutput(true);
urlConnection.setChunkedStreamingMode(0);
String parametros = "login=woooow";
urlConnection.setRequestMethod("POST");
urlConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
urlConnection.setRequestProperty("charset","utf-8");
urlConnection.setRequestProperty("Content-Length", "" + Integer.toString(parametros.getBytes().length));
OutputStream os = urlConnection.getOutputStream();
BufferedWriter writer = new BufferedWriter( new OutputStreamWriter(os, "UTF-8"));
writer.write(parametros);
writer.close();
os.close();
それが問題であるかどうかを確認するために Content-Length を変更したところ、login の thw 値に関する問題は修正されましたが、ハードコーディングによるものでした (これはクールではありません)。
ps .: QueryDict 以外はすべて正常に動作しています。
これを解決するにはどうすればよいですか? 私のJavaコードで何か間違ったことをエンコードしていますか? ありがとう!