2012-03-02 6 views
4

Новое в игре! Рамочная и веб-разработка в целом, я пытаюсь сделать простой REST GET для веб-сервиса и просто получить JSON прямо в ответ. Набрав URL-адрес в браузере, я получаю идеальный ответ с хорошо отформатированным JSON. Вызов его с помощью кода, он просто взрывает:Невозможно получить JSON из запроса GET

WS.WSRequest wsRequest = WS.url(serviceURL); 
    wsRequest.timeout(timeoutTime); 
    wsRequest.setHeader("Accept", "application/json"); 
    wsRequest.headers.put("Content-type","application/json"); 
    wsRequest.mimeType = "application/json"; 

    WS.HttpResponse response = wsRequest.get(); 
    String graphServiceResponse = response.getJson().toString(); 

Все выполняется нормально, до последней строки, в которой он бросает исключение и ошибки из. Я знаю, что у меня есть что-то вроде избыточного кода; это мои попытки исправить это. Как я уже сказал, набрав «serviceURL» в браузере, он отлично работает.

Кто-нибудь знает, что я делаю неправильно? Заранее спасибо!

+2

Какое исключение он выбрасывает? – Thomas

+0

Не уверен (не может отлаживать код), но он возвращает ответ HTTP 500. – Frecklefoot

+1

Я на самом деле решил это, но система не позволит мне опубликовать свой собственный ответ в течение нескольких часов. Обновится, когда смогу! – Frecklefoot

ответ

0

Хорошо, решил это. Просто опустил все наборы и т. Д., Добавила аутентификацию, и она отлично работала. Weird.

String stringResponse = ""; 
    try { 
     // execute GET to graph service 
     WS.WSRequest wsRequest = WS.url(serviceURL).authenticate(USERNAME, PASSWORD); 
     WS.HttpResponse response = wsRequest.get(); 
     stringResponse = response.getString(); 

     ... more cool stuff ... 

Спасибо, что посмотрели!

0

Я пробовал и нашел, что этот ниже код работает. 10000 - это параметр тайм-аута в мс.

String baseUrl = "your url"; 

    F.Promise<WSResponse> response = ws.url(baseUrl) 
      .setQueryParameter(param, value) 
      .get(); 

    return response.get(10000).asJson().toString(); 
Смежные вопросы