从Android应用程序项目访问本地PHP Web服务时权限被拒绝

时间:2013-05-23 18:38:48

标签: php android eclipse stack-trace

我正在开发一个Android应用程序,它调用用PHP编写的Web服务。目前,使用MAMP(Mac OS Mt. Lion)在我的本地计算机上托管Web服务。我通过使用内部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();
}

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

1 个答案:

答案 0 :(得分:0)

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

<uses-permission android:name="android.permission.INTERNET"></uses-permission>