使用Curl发布数据

使用Curl发布数据,curl,Curl,我很难理解如何使用Curl发布数据如果有人能教我如何发布下面列出的数据,我也许能更好地理解它 POST /play HTTP/1.1 User-Agent: iTunes/10.6 (Macintosh; Intel Mac OS X 10.7.3) AppleWebKit/535.18.5 Content-Length: 163 Content-Type: text/parameters Content-Location: http://192.168.1.18:3689/airplay.m

我很难理解如何使用Curl发布数据如果有人能教我如何发布下面列出的数据,我也许能更好地理解它

POST /play HTTP/1.1
User-Agent: iTunes/10.6 (Macintosh; Intel Mac OS X 10.7.3) AppleWebKit/535.18.5
Content-Length: 163
Content-Type: text/parameters

Content-Location: http://192.168.1.18:3689/airplay.mp4
Start-Position: 0.174051
如果我在windows上使用Putty进行远程登录,并发布上面所列的内容,这是可行的,但我一直在阅读Curl基本上是用来做同样的事情的,读了很多之后,我的大脑会受伤。我希望这些信息足以获得帮助,如果不只是让我知道,我可以尝试提供更多信息。

请查看:

  • 用于发送不同的用户代理标头
  • 用于添加内容类型标题(自动计算内容长度)
  • --头接受:
    支持curl默认发送的接受头
  • 可用于设置请求正文。这意味着邮政
  • 最后,添加要发布到的URL
总之,它应该是这样的:

curl -A 'iTunes/10.6 (Macintosh; Intel Mac OS X 10.7.3) AppleWebKit/535.18.5' \
     --header 'Content-Type: text/parameters' \
     --header 'Accept:' \
     --data-binary $(/bin/echo -e \
'Content-Location: http://192.168.1.18:3689/airplay.mp4\r\nStart-Position: 0') \
     http://example.example/play

我尝试了你的方法,没有错误,但它没有按预期工作。这与将其粘贴到Telnet中的做法是否相同?我不熟悉使用WireShark,也不熟悉如何在捕获会话并相应命名的数据包中查找内容。我已经在这个链接中分享了它们,如果你想看看的话,请随意。非常感谢您的转储,它允许高效的调试。就我所见,唯一剩下的区别是数据中附加的accept标头(请参阅答案的更新版本)和分数
开始位置。您可以使用
开始位置:0
和更新的curl代码重试吗?仍然无法按预期工作我也捕获了此会话,它看起来与上一个会话相同。如果你想再看一次的话,我已经把它添加到dropbox文件夹中了。我注意到工作的telnet会话和非工作的curl会话之间唯一不同的地方是,它显示了更多的
[重新组装的PDU的TCP段]
在每一行中都有一行,例如
POST/play HTTP/1.1
在它自己的内部,然后是另一个没有任何内容的数据包,数据包后面没有任何内容将是
用户代理
字符串不确定这是否重要顺便说一句,感谢您的持续帮助,我非常感谢