我正在尝试使用unix CURL
命令来使用webservices,但不知何故我收到请求被拒绝错误。
我正在尝试使用此网络服务网址
我可以在浏览器中打开上面的网址,我可以看到内容。
现在我正在尝试使用CURL命令使用相同的Web服务,但它对我不起作用。
我正在尝试这样的事情 -
curl http://maps.googleapis.com/maps/api/distancematrix/json?origins=95050&destinations=94087&mode=bicycling&sensor=false
我在做什么事吗?我需要提取text portion of distance object
。
任何人都可以帮我吗?
答案 0 :(得分:2)
&
字符在shell中是特殊的;所以命令执行正常,只是被发送到后台。这些数字[1] 4373
[2] 4374
[3] 4375
是发送到后台的进程ID。稍后您可以告诉他们已完成[1] Done
。为避免这种情况,您应该引用URL。
您还需要提供-o
选项以进行卷曲;因为我假设您正在尝试保存稍后要处理的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"
答案 1 :(得分:0)
Curl只适用于通过URL查看和测试服务器中的数据。 要使用Web服务本身,您需要一种编程语言,它可以解析HTTP请求响应中的内容JSON(或其他),例如您在此处粘贴的URL(类型为语言,如Arrays,Dicts或其他)可以工作。