2012-01-16 4 views
0

Я использую следующий код, чтобы получить источник страницы, который является простым текстом (без html-тегов) с веб-сервера в локальной сети. Но я всегда получаю пустую строку взамен, и если я открою тот же URI в браузере, я могу увидеть текст. Ниже мой код:Android-HTTP Получить запрос по локальной сети

   String url = "http://192.168.1.40/touchscreens/get.qsp?display=1"; 

       HttpClient client = new DefaultHttpClient(); 

       HttpGet request = new HttpGet(); 
       request.setHeader("Content-Type", "text/plain; charset=utf-8"); 

       request.setURI(new URI(url)); 
       HttpResponse response = client.execute(request); 

       in = new BufferedReader(new InputStreamReader(response.getEntity().getContent())); 

       StringBuffer sb = new StringBuffer(""); 
       String line = ""; 
       String NL = System.getProperty("line.separator"); 

       while ((line = in.readLine()) != null) { 
        sb.append(line + NL); 
       } 

       String page = sb.toString(); 

       Toast.makeText(getApplicationContext(), page, Toast.LENGTH_LONG).show(); 

и еще одна вещь, когда я ввожу тот же URL в эмуляторе Android браузер не вижу ничего. Я что-то упускаю?

+0

не должен быть какой-то порт при вызове с использованием IP? – kosa

+0

Класс StringBuilder обычно должен использоваться в предпочтении StringBuffer, так как он поддерживает все те же операции, но быстрее, поскольку он не выполняет синхронизацию. – jacknad

+0

@thinksteep: Он работает над портом 80, и, как я уже сказал, я успешно могу видеть текст, когда вставляю тот же URL-адрес в Google Chrome. – Ali

ответ

0

Я рекомендую вам отлаживать ваши HTTP-запросы с помощью скрипача (см. http://www.fiddler2.com/fiddler2/). Это должно отлаживать интернет-запросы из вашего браузера и вашего приложения и показывать вам, если в ваших запросах отсутствуют необходимые заголовки.

+0

это сырой вид моей просьбы от Fiddler2: GET http://192.168.1.40/touchscreens/get.qsp?display=1&b=1326747904130 HTTP/1.1 Узла: 192.168.1.40 Connection: Keep-жив cache- Управление: max-age = 0 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.7 (KHTML, например, Gecko) Chrome/16.0.912.75 Safari/535.7 Принять: text/html, application/xhtml + xml, application/xml; q = 0,9, */*; q = 0,8 Accept-Encoding: gzip, deflate, sdch Accept-язык: en-GB, en-US; q = 0.8, en; q = 0.6 Accept-Charset: ISO-8859-1, utf-8; q = 0,7, *; q = 0,3 – Ali

+0

. Вопросы, которые вы должны задавать, - это то, что скрипач говорит о вашем приложении для Android, и о том, что говорит ваш браузер. Вы сказали, что браузер работает, скрипач должен рассказать вам, что другое. –

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