0

我正在开发一个调用用 PHP 编写的 Web 服务的 Android 应用程序。目前,Web 服务使用 MAMP(Mac OS Mt. Lion)托管在我的本地机器上。我通过使用内部 IP 地址指定的 URL 访问它们,因为虚拟机无法访问 localhost。URL 显示如下:

http://10.0.1.12:8888/platform/services/_login.php?un=joe&pw=pword&ref=cons

这是调用 Web 服务的代码(作为“serviceEndpoint”传入):

public String readJSONFeed(String serviceEndpoint){
    StringBuilder sb = new StringBuilder();
    HttpClient httpClient = new DefaultHttpClient();
    HttpGet httpGet = new HttpGet(serviceEndpoint);

    try{
        HttpResponse response = httpClient.execute(httpGet);
        StatusLine statusLine = response.getStatusLine();
        int statusCode = statusLine.getStatusCode();

        if(statusCode == 200){
            HttpEntity entity = response.getEntity();
            InputStream inputStream = entity.getContent();
            BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
            String line;
            while((line = reader.readLine()) != null){
                sb.append(line);
            }
            inputStream.close();
        } else {
            Log.d("JSON", "Failed to download");
        }
    } catch (Exception ex) {
        Log.d("readJSONFeed ERROR", ex.getMessage());
        StackTraceElement[] errors = ex.getStackTrace();
        for(StackTraceElement error : errors){
            Log.d("TRACE", error.toString());
        }
    }       
    return sb.toString();
}

异常被处理程序捕获,我可以提取的唯一信息是“权限被拒绝”。可以通过浏览器完全访问 Web 服务。我正在尝试在物理 Android 设备上运行它。关于如何解决这个问题的任何想法?谢谢,维

4

1 回答 1

0

你的清单文件中有这个吗?如果没有,请尝试添加它

<uses-permission android:name="android.permission.INTERNET"></uses-permission>
于 2013-05-24T12:22:38.277 回答