Как установить тип контента на HttpURLConnection? - PullRequest
44 голосов
/ 22 декабря 2009

Знаете ли вы, как установить Content-Type на HttpURLConnection ?

Следующий код на Blackberry, и я хочу, чтобы Android-эквивалент:

connection.setRequestProperty("content-type", "text/plain; charset=utf-8");
connection.setRequestProperty("Host", "192.168.1.36"); 
connection.setRequestProperty("Expect", "100-continue");

Правильно ли это для Android?

Пожалуйста, сообщите.

Ответы [ 2 ]

67 голосов
/ 23 декабря 2009

Если вы действительно хотите использовать HttpURLConnection , вы можете использовать метод setRequestProperty , например:

myHttpURLConnection.setRequestProperty("Content-Type", "text/plain; charset=utf-8");
myHttpURLConnection.setRequestProperty("Expect", "100-continue");

Тем не менее, на вашем месте я бы изучил использование Apache HTTP-библиотек . Они немного более высокого уровня и проще в использовании. С ними вы бы сделали что-то вроде:

HttpGet get = new HttpGet("http://192.168.1.36/");
get.setHeader("Content-Type", "text/plain; charset=utf-8");
get.setHeader("Expect", "100-continue");

HttpResponse resp = null;
try {
    HttpClient httpClient = new DefaultHttpClient();
    resp = httpClient.execute(get);
} catch (ClientProtocolException e) {
    Log.e(getClass().getSimpleName(), "HTTP protocol error", e);
} catch (IOException e) {
    Log.e(getClass().getSimpleName(), "Communication error", e);
}
if (resp != null) {
    // got a response, do something with it
} else {
    // there was a problem
}
14 голосов
/ 22 декабря 2009
connection.setRequestProperty("Content-Type", "VALUE");
...