1

我正在尝试使用 unixCURL命令使用 web 服务,但不知何故我收到请求被拒绝错误。

我正在尝试使用此网络服务 url-

http://maps.googleapis.com/maps/api/distancematrix/json?origins=95112&destinations=94000&mode=bicycling&sensor=false

我可以在浏览器中打开上面的 url,并且可以看到内容。

现在我正在尝试使用 CURL 命令使用相同的 Web 服务,但它对我不起作用。

我正在尝试这样的事情-

curl http://maps.googleapis.com/maps/api/distancematrix/json?origins=95050&destinations=94087&mode=bicycling&sensor=false

我做错了什么吗?我需要提取text portion of distance object.

谁能帮我这个?

4

2 回答 2

2

&字符在 shell 中是特殊的;所以命令执行得很好,只是被发送到后台。这些数字[1] 4373 [2] 4374 [3] 4375是发送到后台的进程 ID。你可以稍后告诉他们他们已经完成了[1] Done。为避免这种情况,您应该引用 URL。

您还需要提供-ocurl 选项;因为我假设您正在尝试保存 json 文件以供以后处理:

curl -o bikes.json "http://maps.googleapis.com/maps/api/...."

您还可以使用wget专门为此设计的:

wget "http://maps.googleapis.com/maps/api/...." -O bikes.json

或者,我个人最喜欢的httpie

http "http://maps.googleapis.com/maps/api..." > bikes.json

要在 shell 中解析 json,您可以使用jsawk. 但是,我更喜欢更简单的:

curl -s "http://www.example.com/..." | python -mjson.tool | grep "distance"

于 2013-06-18T04:13:23.107 回答
0

Curl 仅适用于通过 URL 查看和测试服务器中的数据。要使用 web 服务本身,您需要一种编程语言来解析 HTTP 请求的响应中的内容 JSON(或其他),例如您在此处粘贴的 url 类型(语言的类型,如数组、字典或其他)可以工作。

于 2013-06-18T04:12:16.260 回答