#android #web-services #httpclient
#Android #веб-сервисы #httpclient
Вопрос:
я получаю следующее исключение:
Target host must not be null or set in parameters.scheme=null,
host=null,path=/webservices/tempconvert.asmx/FahrenheitToCelsius
Мой исходный код:
public class ParActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView t=new TextView(this);
String encodedUrl = null;
// setContentView(R.layout.main);
HttpClient client = new DefaultHttpClient();
//String query = "?Fahrenheit=26";
// String host = "www.w3schools.com/webservices/tempconvert.asmx/";
// encodedUrl = host URLEncoder.encode(query,"utf-8");
// int p=(Integer) null;
// URI uri = URIUtils.createURI("vv", "www.w3schools.com", 50, "/webservices/tempconvert.asmx", "?Fahrenheit=26", null);
try{
String postURL = "/webservices/tempconvert.asmx/FahrenheitToCelsius";
HttpPost post = new HttpPost(postURL);
// post.addHeader("scheme","vv");
// post.setHeader("host", "www.w3schools.com");
String PostData="36";
StringEntity httpPostEntity = new StringEntity(PostData, HTTP.UTF_8);
post.setEntity(httpPostEntity);
post.setHeader("host", "www.w3schools.com");
post.setHeader("Content-Length", new Integer(PostData.length()).toString());
post.setHeader("Content-Type", "application/x-www-form-urlencoded");
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
// nameValuePairs.add(new BasicNameValuePair("host", "www.w3schools.com"));
nameValuePairs.add(new BasicNameValuePair("Fahrenheit", "26"));
post.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse responsePOST = null;
// Execute HTTP Post Request
// HttpResponse response = httpclient.execute(post);
client.getConnectionManager();
responsePOST = client.execute(post);
HttpEntity resEntity = responsePOST.getEntity();
String response=EntityUtils.toString(resEntity);
response=response.trim();
// Log.i("RESPONSE=",response);
t.setText("response" response);
setContentView(t);
} catch (Exception e) {
// TODO Auto-generated catch block
//e.printStackTrace();
t.setText("ex" e.getMessage());
setContentView(t);
}
}
}
я хочу вызвать веб-сервис по адресу:
http://www.w3schools.com/webservices/tempconvert.asmx?op=CelsiusToFahrenheit
использование HttpClient.Как я должен указать хост и схему в качестве входных данных?
пожалуйста, помогите…
Ответ №1:
Это ваша ошибка хоста, которую вы передаете "www.w3schools.com"
в post.setHeader("host", "www.w3schools.com");
строке, вместо этого вы должны передать "http://www.w3schools.com"
Вы можете обратиться к той же проблеме отсюда