菜鸟教程小白 发表于 2022-12-13 11:34:55

iphone - 使用 restkit 发送 HTTPBody 数据


                                            <p><p><br/>
我正在使用名为“Poster”的 Firefox 工具来检查我的 Web 服务是否正常工作。当我发布请求时,我在要发送的内容中发送一个 JSON 对象(也称为 <a href="http://en.wikipedia.org/wiki/HTTP_body_data" rel="noreferrer noopener nofollow">HTTP body data</a> )。 <br/>
当我按下 POST 按钮时,结果很好。
<img src="/image/Sh0b3.png" alt="enter image description here"/> </p>

<p>现在我想对 <a href="http://restkit.org/" rel="noreferrer noopener nofollow">RestKit</a> 做同样的事情在objective-c中:</p>

<pre><code>    NSString *squery = @&#34;{\&#34;Sort\&#34;:\&#34;Relevance\&#34;,\&#34;DaysToSearch\&#34;:0,\&#34;WorkType\&#34;:\&#34;\&#34;,\&#34;PageSize\&#34;:20,\&#34;LastRunCount\&#34;:0,\&#34;IndustryCodes\&#34;:[\&#34;\&#34;],\&#34;AccountId\&#34;:27,\&#34;Experience\&#34;:\&#34;\&#34;,\&#34;GetResultCount\&#34;:0,\&#34;Keywords\&#34;:\&#34;iOS\&#34;,\&#34;PageIndex\&#34;:0,\&#34;DistanceFromLocation\&#34;:\&#34;250\&#34;,\&#34;SalaryType\&#34;:\&#34;\&#34;,\&#34;JobQueryId\&#34;:\&#34;\&#34;,\&#34;JobTitleCodes\&#34;:[\&#34;\&#34;]}&#34;;

RKObjectLoader *objectLoader = [ objectLoaderWithResourcePath:url delegate:performJobQueryHandler];
objectLoader.method = RKRequestMethodPOST;
objectLoader.objectMapping = s.jobQueryDataMapper;
objectLoader.HTTPBody = ;
objectLoader.serializationMIMEType = RKMIMETypeJSON;
;
</code></pre>

<p>结果我得到:“发生了非故障异常。”</p>

<p><br/><br/><br/>
在 FireFox 扩展“海报”中,如果我使用与“application/json”不同的矿类型,比如说“application/x-www-form-urlencoded”,我会收到相同的错误:“发生非故障异常。 "<br/>
objectLoader.serializationMIMEType = RKMIMETypeJSON; 有问题吗? ???</p>

<p>马丁·马加基安</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>好吧,我想我知道了。 <br/></p>

<p>我用 </p> 激活了 RestKit 调试

<blockquote>
<p>RKLogConfigureByName(&#34;RestKit/Network&#34;, RKLogLevelTrace);</p>
</blockquote>

<p>我得到:</p>

<pre><code>2012-02-14 11:55:48 T restkit.network:RKRequest.m:318 Prepared POST URLRequest &#39;&lt;NSMutableURLRequest http://servicestest.foo.com/jobservice/jobservice.svc/json/jobquery&gt;&#39;. HTTP Headers: {
Accept = &#34;application/json&#34;;
&#34;Content-Type&#34; = &#34;application/x-www-form-urlencoded&#34;;
}. HTTP Body: Sort=Relevance&amp;DaysToSearch=0&amp;WorkType=&amp;SalaryType=&amp;LastRunCount=0&amp;IndustryCodes[]=&amp;Experience=&amp;AccountId=0&amp;GetResultCount=0&amp;PageIndex=0&amp;DistanceFromLocation=250&amp;PageSize=20&amp;JobQueryId=&amp;JobTitleCodes[]=.
</code></pre>

<p>所以我认为使用 RKObjectLoader 对象并不关心 objectLoader.serializationMIMEType = RKMIMETypeJSON;因为 Content-Type 仍然是 "Content-Type"= "application/x-www-form-urlencoded";而不是 "Content-Type"= "application/json";</p>

<p>您认为这是错误还是正常行为?</p></p>
                                   
                                                <p style="font-size: 20px;">关于iphone - 使用 restkit 发送 HTTPBody 数据,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/9256732/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/9256732/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iphone - 使用 restkit 发送 HTTPBody 数据