HttpClient与锚点链接出错400错误

cot*_*aws 0 java anchor android httpclient

这是我的代码:

DefaultHttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(url);
HttpResponse response = client.execute(request);
Run Code Online (Sandbox Code Playgroud)

这适用于我迄今为止尝试的每个网址,除了一些包含锚点的网址.这些锚定网址中的一些返回400.奇怪的是,并非所有包含锚点的链接,其中很多都可以正常工作.

不幸的是,我必须非常一般,因为我无法在这里提供具体的网址.

链接完全有效,并且在任何浏览器中都可以正常工作,但HttpClient在尝试链接时返回400.如果我删除锚,它将工作.

任何想法要找什么?

例如: http://www.somedomain.com/somedirectory/somepage#someanchor

对于仿制药再次抱歉

编辑:我应该提到这是为Android.

Gre*_*som 5

您在网址中对锚点的使用不正确.当我们执行"获取"时,我们需要获取整个资源(页面).锚点只是标记位置的标记,通常您的浏览器会在页面加载后滚动到锚点的位置.在特定锚点"获取"页面没有意义 - 必须提取整个页面.

您的结果可能不一致是因为某些Web服务器忽略了锚点组件,而其他Web服务器正在纠正您的错误.

解决方案是在运行代码之前删除URL的#anchor部分.