我目前正在開發一個需要與服務器交互的應用程序,但我在通過POST接收數據時遇到問題。我使用Django,然後就是我從簡單的觀點是接受:Android發佈UTF-8 HttpURLConnection
<QueryDict: {u'c\r\nlogin': [u'woo']}>
應該 {「登錄」:「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();
我改變了內容長度,看看這是一個問題,然後關於登錄價值的問題是固定的,但它是通過硬編碼(這不是很酷)。
ps .:除了QueryDict以外的所有東西都運行良好。
我能做些什麼來解決這個問題?我在我的java代碼中編碼錯了嗎? 謝謝!
嘗試刪除'Content-Type'並告訴我們會發生什麼情況:D –
它返回了相同的結果:( –