在Objective C中发布到Web服务API?

时间:2011-03-21 18:29:03

标签: objective-c web-services ios rest

我正在撰写我在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服务很新 - 我错过了一些明显的东西吗?

1 个答案:

答案 0 :(得分:1)

我快速浏览了一下Lighthouse API,以及如何创建一张新票。

  1. 请求网址为http:// {yourCustomURL} .lighthouseapp.com / projects / {ProjectID} /tickets.xml其中{ProjectID}是一个5位数字 - 在我的情况下 72945

  2. 方法是POST

  3. 内容类型应设置为application / xml

  4. 正文应采用以下格式。所有字段都是可选字段,因此我只包含标题

  5. <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做同样的事情应该是一块蛋糕。