2016-03-03 51 views
1

經過一段時間的研究後,我還沒有找到任何包含我的問題的解決方案。在Android/Java中將HttpUrlConnection作爲二進制/八位字節進行POST字符串數據

我有一個String價值,我想通過POST發送它。

我已經建立了一些東西。我只是不知道如何設置它將作爲二進制/八位字節流發送。

String data = someData(); 
String sUrl = "http://some.example.website.com"; 
URL url = new URL(sUrl); 
HttpURLConnection connection = (HttpURLConnection) (new URL(sUrl)).openConnection(); 
connection.setRequestMethod("POST"); 
connection.setDoOutput(true); 
connection.setDoInput(true); 
connection.connect(); 

我使用HttpUrlConnection因爲我用DefaultHttpClient()使用已過時。

我希望有人能幫幫我!

親切的問候!

+0

你得到的錯誤是什麼?您也可以使用DefaultHttpClient(),儘管它已被棄用。如果你想我可以分享我在我的應用程序中使用的DefaultHttpClient()代碼。 – Sid

+0

是的,請分享。我以爲我用HttpUrlConnection替換DefaultHttpClient()。正如我看到我做不到的,我想要的。請分享您的代碼 – raymondis

回答

1

您可以使用類似的代碼下面的代碼片段:

HttpClient httpclient = new DefaultHttpClient(); 

String responseXml = null; 
StringEntity se = "test string to be sent to the server"; 


HttpPost httppost = new HttpPost(temp); 
try { 
    se.setContentType("text/soap+xml"); 
    httppost.setEntity(se); 
    HttpResponse httpresponse = httpclient.execute(httppost); 
    HttpEntity resEntity = httpresponse.getEntity(); 
    responseXml = EntityUtils.toString(resEntity); 
    Log.d("Response XML", responseXml); 
} catch (UnsupportedEncodingException e) { 
    e.printStackTrace(); 
    Log.e(TAG,e.getMessage()); 
} catch (ClientProtocolException e) { 
    Log.e(TAG,e.getMessage()); 
    e.printStackTrace(); 
} catch (IOException e) { 
    e.printStackTrace(); 
    Log.e(TAG, e.getMessage()); 
} catch (Exception e){ 
    e.printStackTrace(); 
    Log.e(TAG,e.getMessage()); 
} 

我用這個代碼到一個XML發送到服務器。您可以替換您想要在se變量中發送的內容。

相關問題