Как получить тело ответа и как установить тело запроса с классом HttpURLConnection? - PullRequest
0 голосов
/ 12 февраля 2020

Я использую c# и Xamarin. Android.
Мой вопрос может быть не очень стандартным ,, поскольку в нем нет кода. Но я просто хочу знать, что обеспечивает класс HttpURLConnection.
Как всем известно, запрос http / https имеет заголовок запроса, тело запроса, заголовок ответа и тело ответа.
Но я думаю, что класс HttpURLConnection все еще слишком абстрактен. Что такое InputStream и OutputStream (или методы getInputStream и getOutputStream в Android document)?
Документ Microsoft только что сказал, что это System.IO.Stream, вроде ничего. Android do c сказал мне, что эти методы возвращают InputStream или OutputStream.
Я не знаю, являются ли InputStream и OutputStream очень важные понятия в Java. Если они, скажите, что произойдет, если я вызову их метод ToString. И я просто хочу знать, как получить тело ответа и как установить тело запроса.
Если вы используете не c#, а Java для разработки Android приложения, вы также можете помочь мне! Просто скажите мне, какой метод я должен использовать (В Java), и я смогу найти его в Microsoft, сделайте c.
Пожалуйста, помогите! Я подожду здесь.

PS: Некоторые части статьи переведены машинным способом, включите это предложение.

1 Ответ

1 голос
/ 12 февраля 2020

Вот простой пример использования HttpURLConnection на Java. Вы можете сослаться на него, а затем преобразовать в 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...