所以我在我的服务器上设置了一个小脚本,用于说明用户是否能够登录。当访问url http:server-url/username/password /时,我会得到一个返回的字符串,称为“正确”或“不正确”。Android无法访问Web服务器?
我在做什么在我的Android应用程序如下:
HttpClient httpclient = new DefaultHttpClient();
String url = "http://server-url/"+usernameText+"/"+passwordHash+"/";
HttpPost httppost = new HttpPost(url);
ResponseHandler handler = new BasicResponseHandler();
try {
String response = httpclient.execute(httppost, handler);
Log.e("logged in",response);
} catch (ClientProtocolException e) {
Log.e("clientprotocolexception",e.toString());
} catch (IOException e) {
Log.e("ioexception","error");
}
我得到一个错误:
04-29 14:31:15.728: ERROR/clientprotocolexception(9366): org.apache.http.client.HttpResponseException: FORBIDDEN
,但网站本身工作正常,当我刚刚访问过浏览器?这些设置是否必须在服务器上的某处正确设置,还是我忘记了代码中的某些内容?
谢谢!
2011-04-29
Simon
+0
你需要检查你的'userNameText'和'passwordHash' - 服务器说他们是不正确的,你被禁止访问该页面。我怀疑你不是正确的URL编码。 –
2011-04-29 13:54:13
+3
您正在发送一个POST请求,可能会有GET请求。 –
2011-04-29 13:55:36
+0
似乎服务器正在用http://en.wikipedia.org/wiki/HTTP_403代码进行响应。问题可能出在服务器端,而不是在你的应用程序中。或者你的应用程序没有向服务器提供足够的数据(证书,http头......)。 –
2011-04-29 13:56:50