问题标签 [url-parsing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Java URL 类 getPath()、getQuery() 和 getFile() 与 RFC3986 URI 语法不一致
我正在编写一个半包装 Java 的实用程序类URL class
,并且我编写了一堆测试用例来验证我用自定义实现包装的方法。我不理解某些 Java 的某些URL
字符串的 getter 的输出。
根据 RFC 3986 规范,路径组件定义如下:
查询组件定义如下:
我有几个测试用例被 Java 视为有效的 URL,但是路径、文件和查询的 getter 不会返回我预期的值:
上面的结果如下:
我的另一个测试用例:
上面的结果如下:
根据 Java 的文档URL
:
所以,我的测试用例在getQuery()
被调用时会产生空字符串。在这种情况下,我希望getFile()
返回与getPath()
. 不是这种情况。
我曾期望两个测试用例的输出如下:
也许我对 RFC 3986 的解释是不正确的。但是我看到的输出也不符合 URL 类的文档?谁能解释我所看到的?
python - 确定主机是Python中的域名还是IP
Python中是否有一个函数可以确定主机名是域名还是IP(v4)地址?
请注意,域名可能看起来像:alex.foo.bar.com
甚至(我认为这是有效的)1.2.3.com
:。
url - 为什么在 URL 百分比解码算法中“使用除 utf-8 解码器之外的任何东西......可能不安全”?
我正在实现一个 URL 解析器,并且对 W3C URL 规范有疑问(在http://www.w3.org/TR/2014/WD-url-1-20141209/)在“2. Percent-encoded bytes”部分它具有以下算法(已添加重点):
要对字节序列输入进行百分比解码,请运行以下步骤:
当输入包含 0x00 到 0x7F 范围之外的字节时,使用除 utf-8 解码器之外的任何东西可能是不安全的,不推荐使用。
设输出为空字节序列。
对于输入中的每个字节字节,运行以下步骤:
如果 byte 不是 '%',则将 byte 附加到输出。
否则,如果 byte 是 '%' 并且输入中 byte 之后的下两个字节不在 0x30 到 0x39、0x41 到 0x46 和 0x61 到 0x66 的范围内,则将 byte 附加到输出。
否则,运行以下子步骤:
令 bytePoint 为输入中 byte 之后的两个字节,decoded,然后解释为十六进制数。
将一个值为 bytePoint 的字节附加到输出。
跳过输入中接下来的两个字节。
返回输出。
在原始规范中,单词“decoded”(上面的粗体字)是指向 UTF-8 解码算法的链接。我假设这是上面第二句(斜体)中提到的“utf-8 解码器”。
我了解无效的 UTF-8 字节序列会导致安全问题。但是,在使用解码器的步骤中,字节已经被前面的子步骤 2 验证为有效的 ASCII 十六进制数字,因此似乎在这里使用 UTF-8 解码器来保证安全性是多余的。
当解码器仅用于 0x30 到 0x39、0x41 到 0x46 和 0x61 到 0x66 范围内的字节值时,谁能解释在这个算法中使用 UTF-8 解码器以外的东西可能是不安全的?还是我在规范中解释错误?
在我看来,0x00 到 0x7f 范围之外的任何字节都将按原样复制到输出(在子步骤 1 中因为它们不是 %,或者在子步骤 2 中因为它们不是 ASCII 十六进制数字),所以它们在这个算法中永远不会出现在解码器中。
html - W3C 验证错误:错误值
W3C 验证向我报告此错误:
错误:元素
http://form-integra.seekeo.com/tool-register-form/javascript?site_id=1273912&myCh=2&chIds[]=2&myGender=2-1&theme[login]=0&fb=1&style_id=8417&tracker=GrandeSexoNegro
属性值错误:查询中的非法字符:不是 URL 代码点。src
script
从第 166 行第 1 列开始;到第 166 行,第 230 列
URL 的语法:
任何 URL。例如:/hello
、#canvas
或http://example.org/
。字符应在 NFC 中表示,空格应转义为%20
.
但我不明白错误在哪里以及如何解决这个问题。
如何解决这个问题?
这是完整的网址:
php - 从给定的 URL 获取主机名
如何从下面的示例中获取主机名。
I/P:https ://stackoverflow.com/users/login | 运营商:stackoverflow.com
I/P:stackoverflow.com/users/login | 运营商:stackoverflow.com
I/P: /users/login | O/P:(返回空字符串)
我检查了 parse_url 函数,但没有返回我需要的。因为,我是 PHP 的初学者,所以对我来说很难。如果您有任何想法,请回答。
android - 来自 URL 请求的信息解析不起作用/未找到 TextView
我需要你的帮助。我想发送一个 URL 请求,获取响应并创建一个 JSON 对象。我的第一次尝试完全错误。现在我找到了一个教程并进行了新的尝试。
我的活动看起来像:
然后我创建了一个新的 Java 类并用它构建了一个 asyncTask。但我无法访问 onPostExecute 中的 textview 输出来更新它。
} 我的错误是什么?为什么我无法访问它?我在这里看到它是一个解决方案,但没有让它发挥作用:
https://stackoverflow.com/a/12252717/5743912
希望你现在可以帮助我!:)
ruby - URI.parse 为 sftp 和 ftps 返回 nil 端口
当我尝试解析以下 URL 时,URI.parse
返回nil
端口:
有人可以解释为什么这适用于ftp
,但不适用于http
and ?https
sftp
ftps
c - C HTTP uriparser 库设置
我目前正在开发一个简单的 HTTP 代理作为一个教育个人项目。我对套接字编程、C 以及对特定库的需求和使用相当陌生。
在阅读了在 C 中解析 HTTP 请求 URL 的不同方法之后,我发现使用解析库,比如uriparser,似乎是最流行和最安全的选择。
不幸的是,我一直在努力让这个库正常工作。
从这里下载库后,我解压缩了“tarball”并运行以下命令:
“sudo make install”的输出声称这些库已安装在“/usr/local/lib”中,它们一直是。但是,当我尝试使用 Uriparser 的文档here中所示的 UriUriA obj 时,显然无法识别该对象。
该库是否安装在正确的位置?
我是否遗漏了一些明显的东西,比如不包括这个库的头文件?我在链接的文档中找不到。
相关代码:
(功能现在很简单,主要指向 UriUri 实例化,它仍然会产生未知类型的编译错误。我还没有能够使用 lib)
如果有人对此库有任何经验,我们将不胜感激!谢谢!
javascript - 如何使用 BeautifulSoup 从 JS 代码中抓取 url 标签?
我正在尝试使用 BeautifulSoup 从网页上的 JS 脚本中抓取所有 URL,该脚本看起来像这个pastebin 链接:
我想"url"
从这个 JS 脚本中抓取所有视频链接。我非常确信我不能用 BeautifulSoup 做到这一点,所以我可以使用什么来代替(最好,什么是正确的代码)。
每次页面加载时 URL 也会更新(并在设定的时间后过期),所以是否可以编写一些代码来始终获取新的 URL?
python - Python:加入多个组件以构建 URL
我正在尝试通过加入一些动态组件来构建 URL。在我的案例中,我想使用类似os.path.join()
BUT 的东西作为 URL。从研究中我发现urlparse.urljoin()
做同样的事情。但是,看起来它一次只需要两个参数。
到目前为止,我有以下工作但看起来重复:
输出 =http://example.com/schedule/12/20160322/v1/1.json
以上工作,我试图通过这种方式缩短它:
输出:http://example.com/schedule/.json
但是第二个实现不起作用。请建议我如何解决这个问题或更好的方法。
编辑 1:reduce
解决方案的输出如下所示(不幸的是): 输出:http://example.com/schedule/.json