我得到以下异常:
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);
}
}
}
我想在以下位置调用Web服务:
http://www.w3schools.com/webservices/tempconvert.asmx?op=CelsiusToFahrenheit
使用HttpClient。我应该如何提供主机和方案作为输入?
请帮忙...
最佳答案
这是您的主机错误
您正在"www.w3schools.com"
行中传递post.setHeader("host", "www.w3schools.com");
,而您必须传递"http://www.w3schools.com"
您可以从here引用相同的问题