2013-08-06 2 views
1

Я пытаюсь отправить строку из одного приложения в другое. Я бы возвращал ответ, который является строкой. Здесь myhost.com/views - это второе приложение, в котором мне нужно отправить строковое значение и получить от него ответ. Но когда я пытаюсь отправить его, он не выполняет этот код. Может кто-то, пожалуйста, поправьте меня, где я ошибаюсь?Ошибка: целевой хост не должен быть пустым или задан в параметрах

Ниже приведен код, который я написал.

public static void sendData(String strval) throws IOException{ 
String doSend="https://myhost.com/views?strval="+strval; 
    HttpClient httpclient = new DefaultHttpClient(); 
    try { 
     System.out.println("inside try"); 
     URIBuilder builder = new URIBuilder(); 
     System.out.println("builder="+builder); 

     builder.setHost("myhost.com").setPath("/views"); 
     builder.addParameter("strval", strval); 
     System.out.println("add param,sethost,setpath complete"); 

     URI uri = builder.build(); 
     System.out.println("uri="+uri); 


     HttpGet httpget = new HttpGet(uri); 
     System.out.println("httpGet"+httpget); 

     HttpResponse response = httpclient.execute(httpget); 
     System.out.println(response.getStatusLine().toString()); 

     if (response.getStatusLine().getStatusCode() == 200) { 
      String responseText = EntityUtils.toString(response.getEntity()); 
      System.out.println("responseText="+responseText); 
      httpclient.getConnectionManager().shutdown(); 
     } else { 
      System.out.println("Server returned HTTP code " 
        + response.getStatusLine().getStatusCode()); 
     } 
     } catch (java.net.URISyntaxException bad) { 
     System.out.println("URI construction error: " + bad.toString()); 
     } 
     catch(Exception e){ System.out.println("e.getMessage=>"+e.getMessage()); } 

    } 

код работает до и при печати исключений я вижу excep.getMessage() ->

 java.lang.IllegalStateException: Target host must not be null, or set in parameters. 
    at org.apache.http.impl.client.DefaultRequestDirector.determineRoute(DefaultRequestDirector.java:789) 
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:414) 
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906) 
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805) 
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:784) 
+1

Вы можете найти список баннеров на пути к классам? Вам нужны баннеры httpclient jar и httpcore. – roby

+0

Проблема была в версии httpcore jar, которую я использовал. версия 4.2.1 несовместима, я использовал версию 4.2.3 и работал нормально до HttpGet httpget = new HttpGet (uri); Обновлен стек исключений, поскольку я вижу другие ошибки в одном коде. – smiley

ответ

7

Этот код не в состоянии признать его в качестве действительного URI, так как он отсутствовал http. Это то, что я добавил для кода:

builder.setScheme("http"); 
Смежные вопросы