我正在开发一个调用用 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 设备上运行它。关于如何解决这个问题的任何想法?谢谢,维