2013-08-07 5 views
0

Я использую java.net для создания простого запроса с URL-адресом. Этот url возвращает уникальный результат каждый раз. Когда приложение находится на dev-сервере, все работает нормально. При развертывании в GAE один и тот же результат возвращается снова и снова, независимо от того, сколько раз я вызываю URL. Если я копирую и вставляю фактический URL-адрес в браузер, он возвращает новый уникальный результат каждый раз, когда запрос выполняется таким образом, что он работает по назначению. Что может вызвать эту проблему? Любая помощь будет принята с благодарностью.URL-адрес возвращает тот же результат каждый раз

+2

Вы можете добавить текущие временные миллисекунды к URL-адресу, чтобы предотвратить кеширование «myurl.jsp? Milli = 12012542101» –

+0

api Я запрашиваю возврат недопустимого параметра при добавлении миллинов или чего-то подобного в качестве значения для запроса. –

+0

Установите заголовок управления кэшем вашей страницы на NO-CACHE. См. Http://stackoverflow.com/questions/4480304/how-to-set-http-headers-for-cache-control – Philippe

ответ

0

ли вы пытаетесь очистить кэш в браузере, чтобы отбросить проблемы кэширования. также может кэшироваться на сетевом уровне. Также попробуйте другие общие параметры timestamp, такие как ts, timestamp и т. Д. Возможно, служба примет его.

+0

Благодарим за предложение. Я смог добавить параметр «_», чтобы исправить проблему, и служба проигнорировала бы ее. –

0

Попробуйте использовать класс URLConnection, дайте мне знать, как она работает, проблема может быть кэширование

import java.io.IOException; 
import java.io.InputStream; 
import java.net.URL; 
import java.net.URLConnection; 

public class Test { 

    public static void main(String[] args) throws IOException { 
     System.out.println(getData("http://www.google.com/")); 
    } 

    public static String getData(String path) throws IOException { 
     URL url = new URL(path); 
     URLConnection urlc = (URLConnection) url.openConnection(); 
     urlc.setUseCaches(false); 
     urlc.connect(); 
     InputStream is = urlc.getInputStream(); 
     String s = ""; 
     int info; 
     while ((info = is.read()) != -1) { 
      s += (char) info; 
     } 
     is.close(); 
     return s; 
    } 
} 
+0

Я на самом деле прежде всего использовал HttpURLConnection. У меня есть setUsesCaches (false), и это не устраняет проблему. –

Смежные вопросы