首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iPhone将xml发布到ASP.net MVC webservices

iPhone将xml发布到ASP.net MVC webservices
EN

Stack Overflow用户
提问于 2011-05-02 20:20:45
回答 1查看 531关注 0票数 1

是否可以从iPhone OS将XMLData发布到the服务。we服务是在带有RESTFul url的ASP.net MVC3.0中开发的,我们希望iPhone开发人员以RESTFul格式发送输入数据作为POST变量。

webservice操作结果如下所示,其中sightings是预期作为POST变量传递的参数

代码语言:javascript
复制
 public ActionResult Update(XDocument sightings)
 {
    try
    {
        XMLHelper xmlHelper = new XMLHelper();
    }
 }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-03 02:35:55

这是绝对适用的,您所需要做的就是使用NSMutableURLRequest,如下所示:

代码语言:javascript
复制
NSString* sXMLToPost = @"<?xml version=\"1.0\"?><Name>user</Name>";

NSData* data = [sXMLToPost dataUsingEncoding:NSUTF8StringEncoding];

NSURL *url = [NSURL URLWithString:@"http://myurl.com/RequestHandler.ashx"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];

[request setHTTPMethod:@"POST"];
[request setValue:@"application/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:[sXMLToPost dataUsingEncoding:NSUTF8StringEncoding]];

NSURLResponse *response;
NSError *error;
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&err];

if (error) {
//handle the error
}

现在,在您的ASHX文件中,解析InputStream以读取发布的XML:

代码语言:javascript
复制
System.IO.Stream str; String strmContents;
Int32 counter, strLen, strRead;

str = Request.InputStream;

strLen = Convert.ToInt32(str.Length);

byte[] strArr = new byte[strLen];

strRead = str.Read(strArr, 0, strLen);

// Convert byte array to a text string.
strmContents = "";
for (counter = 0; counter < strLen; counter++)
{
    strmContents = strmContents + strArr[counter].ToString();            
}

请记住,您始终可以使用以下命令检查请求类型:

if (context.Request.RequestType == "POST")

MSDN HttpRequest.InputStream

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5857059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档