我想得到身体响应,但是获得错误403,尽管页面在webview和浏览器中打开。我的代码:
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url(url)
.build();
client.newCall(request).enqueue(new Callback()
{
@Override
public void onFailure(Call call, IOException e)
{
Log.e("Error load URL", e.toString());
}
@Override
public void onResponse(Call call, Response response) throws IOException
{
if (response.isSuccessful())
{
htmlPage = response.body().string();
}
else
{
//I find myself here.
Log.e("Error load URL", "Response error");
}
}
});
来自服务器的响应:
响应{protocol = http / 1.1,代码= 403,消息=禁止, URL = http://shop.lenovo.com/SEUILibrary/controller/e/web/LenovoPortal/en_US/cart.workflow:ShowCart?shopping-menu-selected-line=cart&menu-id=currentcart}
在浏览器中一切都很好。为什么呢?
答案 0 :(得分:1)
确保您的客户已经授权或验证了Web服务。 如果在您调用的Web服务上启用了安全性,尝试对Web服务进行身份验证/授权,然后开始使用它,则会发生这种情况。
答案 1 :(得分:1)
扩展到Kiran,403表示授权问题。不是身份验证问题。很可能在浏览器身份验证和授权中使用cookie来管理,而cookie可能无法在您的代码中处理。