致命异常asyncTask#1主机可能不为null

时间:2014-08-07 18:26:55

标签: android json android-asynctask

我尝试使用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;
 }

3 个答案:

答案 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