繁体   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