我尝试使用webapi
从mvc 4应用程序获取json文件
但我在asynctask
doinbackground
方法
java.lang.illegalargumentexception host may not be null
当我跟踪我的代码时,我发现它在getjson中的jsonparser崩溃,来自此代码最后一行的url
public JSONObject getJSONFromUrl(String Url) throws JSONException
{
try {
Log.d("tony","6"+Url);
DefaultHttpClient httpClient = new DefaultHttpClient(); // to connect to http
Log.d("tony","7"+Url);
HttpGet httpGet=new HttpGet(Url);
Log.d("tony","8"+httpGet.getMethod());
HttpResponse httpResponse = httpClient.execute(httpGet);
这是我在后台代码中做的事情
public JSONObject doInBackground(String... urls) {
// get url pointing to entry point of API
String address = urls[0].toString();
if (method.equals(LOAD_REQUEST))
{
return getJSON(address);
}
else
return makeHttpRequest(address, method, parameters);
}
get json方法
public JSONObject getJSON(String url){
JSONObject j = null;
try {
j=parser.getJSONFromUrl(url);
} catch (JSONException e) {
e.printStackTrace();
}
return j;
}
答案 0 :(得分:1)
变化
localhost:2100/api/products
到
http://localhost:2100/api/products
答案 1 :(得分:1)
第一次更正:
localhost:2100/api/products
到
http://localhost:2100/api/products
其次,改变
http://localhost:2100/api/products
到
http://ipaddress:2100/api/products
因为如果你使用的是“localhost”,那么你指的是设备主机,你需要指向服务器。
答案 2 :(得分:1)
您需要将http://
添加到url
,例如:
http://localhost:2100/api/products