我正在撰写我在Objective C中使用Web服务的第一个应用程序,它是一个Lighthouse API客户端。我能够正确快速地执行所有GET和XML解析,但是我在尝试通过POST(http://lighthouseapp.com/api)创建新票证时遇到了极大的麻烦。
我正在使用ASIHTTPRequest。 我尝试在URL上包含参数(即POST / projects /#{project_id} /tickets.xml?title=boo)。
我已经尝试将票证XML放在请求正文中。
<ticket><title>boo</title></ticket>
什么都没有用。 (服务器总是发回一个回复说它需要一个标题)我对Web服务很新 - 我错过了一些明显的东西吗?
答案 0 :(得分:1)
我快速浏览了一下Lighthouse API,以及如何创建一张新票。
请求网址为http:// {yourCustomURL} .lighthouseapp.com / projects / {ProjectID} /tickets.xml其中{ProjectID}是一个5位数字 - 在我的情况下 72945
方法是POST
内容类型应设置为application / xml
正文应采用以下格式。所有字段都是可选字段,因此我只包含标题
<ticket> <assigned-user-id type="integer"></assigned-user-id> <body></body> <milestone-id type="integer"></milestone-id> <state></state> <title>Testing new ticket creation</title></ticket>
(抱歉上面代码的格式化,SO似乎不像某种程度上喜欢XML格式的代码?
这对我来说是在projectID 72945下创建的新票证 - 收到的回复是 201已创建
如果您想在进入ASIHTTPRequest之前确保您的POST请求正常工作,请从here下载名为 POSTER 的Firefox插件。这将允许您发送带有上述所有字段的经过身份验证的发布请求。一旦你开始工作,让ASIHTTPRequest做同样的事情应该是一块蛋糕。