2013-05-05 134 views
0

我有我的web服务写在PHP托管在byethost.com 它工作正常,浏览器和“http://www.jsoneditoronline.org/”。 但是,当我从android应用程序调用服务时,它会给出错误。错误访问php的网络服务

05-06 00:31:34.475:E/AndroidRuntime(24246):java.lang.IllegalArgumentException异常:主机名可以不为空 05-06 00:31:34.475:E/AndroidRuntime(24246) :at org.apache.http.HttpHost。(HttpHost.java:83) 05-06 00:31:34.475:E/AndroidRuntime(24246):at org.apache.http.impl.client.AbstractHttpClient.determineTarget(AbstractHttpClient .java:519) 05-06 00:31:34.475:E/AndroidRuntime(24246):at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:509) 05-06 00:31 :34.475:E/AndroidRuntime(24246):at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487) 05-06 00:31:34.475:E/AndroidRuntime(24246):at com .shreej E/AndroidRuntime(24246):at apidatahandler.TilesApiCall.getTilesDetails(TilesApiCall.java:23) 05-06 00:00:31:34.475 E/AndroidRuntime(24246):at apidatahandler.TilesApiCall.getTilesDetails(TilesApiCall.java:23) 05-06 00: 31:34.475:E/AndroidRuntime(24246):at com.shreejitiles.android.Ui_MainPage $ 1.run(Ui_MainPage.java:41) 05-06 00:31:34.475:E/AndroidRuntime(24246):at java.lang .Thread.run(Thread.java:856)

请帮帮我。

我正在使用的代码来解析从服务器获取响应。

package com.shreeji.jsonparser; 

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.io.UnsupportedEncodingException; 
import java.util.List; 

import org.apache.http.HttpEntity; 
import org.apache.http.HttpResponse; 
import org.apache.http.NameValuePair; 
import org.apache.http.client.ClientProtocolException; 
import org.apache.http.client.HttpClient; 
import org.apache.http.client.entity.UrlEncodedFormEntity; 
import org.apache.http.client.methods.HttpPost; 
import org.apache.http.impl.client.DefaultHttpClient; 
import org.json.JSONException; 
import org.json.JSONObject; 

import android.util.Log; 

public class JSONParser { 

    static InputStream is = null; 
    static JSONObject jObj = null; 
    static String json = ""; 

    // constructor 
    public JSONParser() { 

    } 

    public JSONObject getJSONFromUrl(String url, List<NameValuePair> params) 
      throws ClientProtocolException, IOException, JSONException { 

     Log.i("url", url); 

     // Making HTTP request 

     // defaultHttpClient 
     DefaultHttpClient httpClient = new DefaultHttpClient(); 
     HttpPost httpPost = new HttpPost(url); 

     httpPost.setEntity(new UrlEncodedFormEntity(params)); 

     HttpResponse httpResponse = httpClient.execute(httpPost); 
     HttpEntity httpEntity = httpResponse.getEntity(); 
     is = httpEntity.getContent(); 

     BufferedReader reader = new BufferedReader(new InputStreamReader(is, 
       "iso-8859-1"), 8); 
     StringBuilder sb = new StringBuilder(); 
     String line = null; 
     while ((line = reader.readLine()) != null) { 
      sb.append(line + "\n"); 
     } 
     is.close(); 
     json = sb.toString(); 

     jObj = new JSONObject(json); 

     // return JSON String 
     return jObj; 

    } 
} 

回答

0

这是因为您还没有为您的请求设置主机url。

+0

我设置的网址与我正在尝试浏览器相同 http://www.example.byethost18.com/Api/getWalltiles.php?action=1 ,但它在浏览器中正常工作,而不是在android应用程序中正常工作。 – warlock 2013-05-05 19:36:02

+0

没有,但dosent工作相同的错误味精。 我也试过要求url或hurl.it bur它不会在那里工作。 它在我的浏览器中正常工作。 – warlock 2013-05-05 19:41:34

+0

你可以发布你的代码吗? – 2013-05-05 19:42:25