Я пытаюсь использовать httpClient (по apache) для публикации и получения данных. Проводка абсолютно прекрасна, и мой код для этого не имеет проблем, однако я не могу сказать то же самое для получения данных.Извлечение тела сообщения из ответа HTTP
Сайта Я пытаюсь получить данные из такой: http://www.posttestserver.com/data/2013/04/16/01.13.04594755373
Я только хочу, чтобы получить тело поста (то есть строка JSON в нижней части, начиная с недавними случаями), однако, метод I В настоящее время я использую (и каждый метод, который я нахожу в Интернете) возвращает время, источник IP, заголовки и тело (в основном это возвращает все). Есть ли все равно, чтобы разобрать тело из этого? Я не хочу проходить через возвращаемую строку и говорить ей, чтобы искать текст «Начать тело сообщения», я хочу естественный метод для этого. Это существует?
TLDR: Я только хочу, чтобы вернуть то, что в почтовом теле
Вот мой код:
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
public static void main(String[] args) throws ClientProtocolException, IOException{
HttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet("http://www.posttestserver.com/data/2013/04/16/01.41.38521171013");
HttpResponse response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
System.out.println(EntityUtils.toString(entity));
}
И вот что возвращается:
Time: Tue, 16 Apr 13 01:41:38 -0700
Source ip: 155.198.108.247
Headers (Some may be inserted by server)
UNIQUE_ID = UW0OwtBx6hIAACfjfl4AAAAA
CONTENT_LENGTH = 7627
CONTENT_TYPE = application/json
HTTP_HOST = posttestserver.com
HTTP_CONNECTION = close
HTTP_USER_AGENT = Apache-HttpClient/4.2.4 (java 1.5)
REMOTE_ADDR = 155.198.108.247
REMOTE_PORT = 54779
GATEWAY_INTERFACE = CGI/1.1
REQUEST_METHOD = POST
QUERY_STRING =
REQUEST_URI = /post.php
REQUEST_TIME = 1366101698
No Post Params.
== Begin post body ==
{"Recent Cases":[{"descript..etc etc"}]}
== End post body ==
Любые идеи?
Спасибо за быстрый ответ, но ваш метод производит тот же самый результат, что и мой (ваш buffer.toString() производит то же самое, что и мой EntityUtils.toString (сущность)). = S. Любой другой совет? –
Ах, я вижу, что это ответ от URL-адреса, который появляется в браузере, так что это не настоящий заголовок, это целая страница! Этот ответ недействителен JSON. Если у них нет спокойного URL-адреса, вы разбираете, который просто создает JSON, вы можете быть ввернуты и должны будете String проанализировать его (что ужасно). – david99world
Я поменял загрузку на JSON и получил ту же ошибку, что означает, что синтаксический анализ строк будет вероятным. Тьфу. На самом деле надеялся, что будет более элегантное решение. Спасибо в любом случае d99w. –