2013-03-05 189 views
1

我想用curl发送一个POST请求与json。如何找到发送curl POST请求的正确url?

我使用Live HTTP Headers并获取要发送请求的URL。然而,它回来了“请求被拒绝,你没有权限访问这个页面?”

如何找到正确的网址?

从现场HTTP头,我可以看到JSON数据{ “VAR1”: “VAL1”, “VAR2”: “值2”,...}

,所以我使用下面的curl命令:

curl -H“Accept:application/json”-H“Content-type:application/json”-o output.html -L“http://domain.com/theurl”-d'{“var1”:“val1”,“var2”:“ val2“,...}'

+0

您有权限? – 2013-03-05 07:20:25

回答

0

您可能会发现请求的其他部分使用Live HTTP Headers允许您的浏览器访问该URL,例如指示您的会话信息或用户凭据的Cookie值。如果Live HTTP Headers能够查看这些标头和/或Cookie,则可以使用其他-H 'Header: value'参数将它们包含在curl请求中。

HTTP Authentication也可以使用,在这种情况下,您应该将您的用户名和密码通过--user name:password传递到curl

+0

我使用-b cookie -c cookie,我认为curl可以自动处理cookie? 你说“请求被拒绝”并不意味着错误的网址? 我也试过-H“X-Requested-With:XMLHttpRequest”,但得到了相同的信息。 其他东西包括: 接受:application/json,text/javascript,*/*; q = 0.01 Accept-Language:zh-cn,en; q = 0.5 Accept-Encoding:gzip,deflate DNT:1 Connection:keep-alive Content-Type:application/json;字符集= UTF-8 的Referer:.... 附注:无缓存 缓存控制:无缓存 内容编码:gzip 其中我不认为是必要的? – 2013-03-05 08:34:36

+0

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''除非你先指定一个cookie开始''''''''''''' '-c cookie'只是在cookie jar文件的请求过程中写入_received_,但如果你没有通过任何传递开始,那么它就不知道如何认证你。 (只是为了确认... _is_这个URL验证?) – 2013-03-05 09:11:01

+0

是的,我必须先登录网站。我从cookies开始。我的代码用于工作,直到网站请求更改为json(和URL更改)。 – 2013-03-05 15:03:38