我正在开发一个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
答案 0 :(得分:0)
你的清单文件中有这个吗?如果没有,请尝试添加
<uses-permission android:name="android.permission.INTERNET"></uses-permission>