Android belgeleri belirttiği gibi, setDoOutPut(true);
'u ayarladıktan sonra bağlantı POST
olarak gönderilir. Ancak, hata ayıklayıcısında HTTPURLConnection
yöntem üyesi denetleyin, her zaman setDoOutput (true) ve hatta setRequestMethod("POST")
sonra bile GET
olur. Bir şekilde GET
'a geri yüklüyor muyum?HttpURLConnection yöntemi her zaman GET mi?
URL url = new URL(serverAddr);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setDoOutput(true);
urlConnection.setRequestMethod(verb);
urlConnection.setFixedLengthStreamingMode(postBody.getBytes().length);
//urlConnection.setRequestProperty("Content-Length", postBody.getBytes().toString());
urlConnection.setRequestProperty("Content-Type", "application/json;charset=utf-8");
urlConnection.connect();
OutputStream out = new BufferedOutputStream(urlConnection.getOutputStream());
out.write(postBody.getBytes());
out.flush();
int responseCode = urlConnection.getResponseCode();
System.out.println("HTTPS RESPONSE CODE: " + responseCode);
out.close();
DÜZENLEME: Bu bir hata olmalı ... ayıklayıcı açıkça true bunu ayarlıyorum bile sahte setDoOuput üye değişkeni gösterir. Bu ayarlanmadı!
'verb' nedir? Ve aslında bir GET isteği ve bir POST değil, aslında doğruladı mı? – dylan7
fiil "POST" değeriyle aktarılıyor. Bunu nasıl doğrulayabilirim? Yanıt kodu 400 döndürüyor, ancak kötü bir GET isteği veya kötü bir POST isteğinin olup olmadığından emin değilim. – ShrimpCrackers
Aşağıdaki URL'yi deneyin URL url = new URL (address); urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setDoOutput (true); urlConnection.setRequestProperty ("İçerik Türü", ...); OutputStream outputStream = new BufferedOutputStream (urlConnection.getOutputStream()); BufferedWriter yazıcı = yeni BufferedWriter (yeni OutputStreamWriter (outputStream, "utf-8")); writer.write (requestBody); writer.flush(); writer.close(); outputStream.close(); – BNK