2013-05-02 18 views
0

我试图使用的API在检索它时返回乱码XML。
以下是将auth参数发布到端点的基本代码。AFNetworking XMLResponse正文是HTML编码,不可能解析

[[APIManager sharedManager] postPath:@"Authenticate" 
          parameters:params 
          success:^(AFHTTPRequestOperation *operation, XMLParser *xmlParser) { 
           //code 
           NSLog(@"Raw XML Data: %@", [[NSString alloc] initWithData:operation.responseData encoding:NSUTF8StringEncoding]); 

          } 
          failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
           //code 
           DLog(@"error: %@", error); 
          }]; 

我得到的回应是乱码,像这样:

Raw XML Data: <?xml version="1.0" encoding="utf-8"?><string xmlns="http://www.morningstarsoftware.com/">&lt;MorningStar_BCE_WS&gt;&lt;MyUserInfo&gt;&lt;Tenant_Id&gt;37&lt;/Tenant_Id&gt;&lt;MsClient&gt;OBC05&lt;/MsClient&gt;&lt;Suite_Location&gt;DA&lt;/Suite_Location&gt;&lt;pseq&gt;6690&lt;/pseq&gt;&lt;CPResetAccess&gt;false&lt;/CPResetAccess&gt;&lt;CCPayor&gt;N&lt;/CCPayor&gt;&lt;CPAllowFinancial&gt;false&lt;/CPAllowFinancial&gt;&lt;CPAllowScheduler&gt;true&lt;/CPAllowScheduler&gt;&lt;CPAllowService&gt;false&lt;/CPAllowService&gt;&lt;FirstName&gt;Gary&lt;/FirstName&gt;&lt;LastName&gt;Evans&lt;/LastName&gt;&lt;OfferCC&gt;Y&lt;/OfferCC&gt;&lt;AllowACH&gt;Y&lt;/AllowACH&gt;&lt;MerchantAccount&gt;121513&lt;/MerchantAccount&gt;&lt;SQID&gt;0&lt;/SQID&gt;&lt;SQID2&gt;0&lt;/SQID2&gt;&lt;Ecom_payment_recurring /&gt;&lt;/MyUserInfo&gt;&lt;/MorningStar_BCE_WS&gt;</string> 

我做得不对,或者是API只是返回这个错误?

+1

什么是“乱码”? – matt 2013-05-02 02:36:50

+0

嗯,编辑器解码了html编码的字符串,让我看看我是否可以编辑它来显示我实际得到的回应。 – 2013-05-02 18:25:47

+0

那里,现在你可以看到如何“字符串”节点是一个HTML编码表示xml – 2013-05-02 18:26:57

回答

1

他们选择做的事很奇怪,但它并不疯狂。他们正在返回完全有效的XML,具有以下结构:

<?xml version="1.0" encoding="utf-8"?> 
<string xmlns="http://www.morningstarsoftware.com/"> 
    Some Text 
</string> 

这是合法的。由于我写成“某些文本”是文本,所以将左尖括号写为左角括号实体是正确的(并且是必需的)。

包含网页原始HTML的RSS源的工作方式完全相同。例如,我的应用程序“TidBITS新闻”展示了以相同方式到达的网页内容(在UIWebView中),与实现的节点内容一样。

这不是什么问题,因为当你的XML解析器请求<string>元素的内容时,实体将被转换回实际的尖括号,并且你会得到一个你可以做的事情。在你的情况下,你将使用该字符串做什么,将它作为XML解析

+0

完美。谢谢 – 2013-05-03 01:18:38