簡體   English   中英

如何獲取響應正文以及如何使用 HttpURLConnection 類設置請求正文?

[英]How to get the response body and how to set the request body with HttpURLConnection class?

我正在使用 c# 和 Xamarin.Android。
我的問題可能不是很標准,因為它沒有任何代碼。但我只想知道 HttpURLConnection 類提供了什么。
眾所周知,一個http/https請求有請求頭、請求體、響應頭和響應體。
但是我覺得HttpURLConnection這個類還是太抽象了。什么是InputStream和OutputStream(或者Android文檔中的getInputStream和getOutputStream方法)?
Microsoft 文檔只是告訴我這是 System.IO.Stream,就像什么都沒有。Android 文檔告訴我這些方法返回 InputStream 或 OutputStream。
我不知道 InputStream 和 OutputStream 在 Java 中是否是非常重要的概念。如果是,請告訴我如果我調用它們的 ToString 方法會發生什么。我只想知道如何獲取響應正文以及如何設置請求正文。
如果你使用的不是c#而是Java來開發Android App,你也可以幫我!告訴我我應該使用什么方法(在Java中),我可以在Microsoft doc中找到它。
請幫忙!我在這里等。

PS:文章部分內容是機器翻譯的,包括這句話。

這是一個簡單的示例,它使用 Java 的HttpURLConnection 。您可以參考它,然后轉換為 C#:

URL url = new URL("http://*******");
HttpURLConnection httpCon = (HttpURLConnection) url.openConnection();
httpCon.setDoOutput(true);
httpCon.setRequestMethod("POST");
//set request body
OutputStream os = httpCon.getOutputStream();
OutputStreamWriter osw = new OutputStreamWriter(os, "UTF-8");    
osw.write("Just Some Text");
osw.flush();
osw.close();
os.close();  //don't forget to close the OutputStream
httpCon.connect();

//read the response
String result;
BufferedInputStream bis = new BufferedInputStream(httpCon.getInputStream());
ByteArrayOutputStream buf = new ByteArrayOutputStream();
int result2 = bis.read();
while(result2 != -1) {
    buf.write((byte) result2);
    result2 = bis.read();
}
result = buf.toString();
System.out.println(result);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM