这是我的代码:
DefaultHttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(url);
HttpResponse response = client.execute(request);
到目前为止,该方法适用于我尝试过的每个网址,但某些包含锚的网址除外。这些锚定URL中的一些返回400。奇怪的是,并不是所有包含锚定的链接,其中许多都可以正常工作。
不幸的是,我必须非常通用,因为我无法在此处提供特定的网址。
链接是完全有效的,并且在任何浏览器中都可以正常工作,但是HttpClient尝试链接时会返回400。如果我卸下锚,它将起作用。
有什么想法要寻找吗?
例如: http://www.somedomain.com/somedirectory/somepage#someanchor
再次抱歉使用泛型
编辑:我应该提到这是为Android。
正如@Greg Sansom所说,URL不应与锚点/片段一起发送。URL的片段部分与服务器无关。
这是HTTP
1.1规范相关部分的预期URL语法:
http_URL = "http:" "//" host [ ":" port ] [ abs_path [ "?" query ]]
注意:fragment
语法中没有任何内容。
如果确实发送fragment
明文,将会发生什么事,具体取决于服务器实现。我希望您会看到各种各样的回复:
IMO,最明智的解决方案是在实例化HttpGet
对象之前将其从URL中剥离。
跟进
从URL字符串中删除片段的推荐方法是将其转换为java.net.URL
or
java.net.URI
实例,提取相关组件,使用这些组件创建新的java.net.URL
or
java.net.URI
实例(当然不包含片段),最后将其重新转换为String 。
但是,我认为,如果可以安全地假定您的URL都是有效的绝对HTTP或HTTPS URL,则以下内容也应适用。
int pos = url.indexOf("#");
String strippedUrl = (pos >= 0) ? url.substring(0, pos) : url;
问题内容: 可以在Angularjs中使用锚链接吗? 即: 谢谢 问题答案: 看来有几种方法可以做到这一点。 选项1:本机角度 Angular提供了一项服务,但文档严重缺乏,我无法使其正常工作。 请访问http://www.benlesh.com/2013/02/angular-js-scrolling-to-element-by- id.html, 以获取有关的一些见解。 选项2:自定义指令/本
是否可以使用Angularjs锚链接? 即: 非常感谢。
问题内容: 无论如何(在CSS中)是否要避免在页面..中引入文本和链接的下划线? 问题答案: 使用CSS。这会删除和元素的下划线: 有时您需要覆盖元素的其他样式,在这种情况下,可以在规则上使用修饰符:
使用Maven生成JavaDoc时,我收到一条错误消息“错误获取链接:”,指的是一个文件javadoc-bundle-选项。其中包含带有目录的javadocResourcesDirectory。即使我创建了那个目录,我仍然会得到相同的错误。如何更正错误?
我在一台主机上安装了一台mysql服务器,我希望通过加密连接从另一台主机连接到mysql服务器(两者都运行Ubuntu12.04)。我已经创建并传输了证书,并手动测试了设置。我可以从Linux命令行使用密钥和证书连接到远程mysql服务器,因此服务器配置似乎是正确的: 我不知道怎么了,有什么想法吗?谢了!
我使用jsoup解析一些页面的链接,然后使用httpclient测试链接,看看它们是否工作。我网页上的一些链接是,我想忽略这些。