iphoneweb服务NSData和PHP

iphoneweb服务NSData和PHP,php,iphone,xml,web-services,ios,Php,Iphone,Xml,Web Services,Ios,我对iOS开发相当陌生,希望向我用PHP创建的web服务发送请求消息。它将接受XML请求、处理,然后提供响应XML消息 然而,我遇到的问题是,当向Web服务发送数据时,它是以NSData的形式发送的 正在发送的数据的NSLog为: <3c3f786d 6c207665 7273696f etc etc ... 743e> 但是,PHP脚本希望收到如下XML消息: <?xml version="1.0" ?><request-message><tag

我对iOS开发相当陌生,希望向我用PHP创建的web服务发送请求消息。它将接受XML请求、处理,然后提供响应XML消息

然而,我遇到的问题是,当向Web服务发送数据时,它是以NSData的形式发送的

正在发送的数据的NSLog为:

<3c3f786d 6c207665 7273696f etc etc ... 743e>

但是,PHP脚本希望收到如下XML消息:

<?xml version="1.0" ?><request-message><tag-1></tag-1><tag-2></tag-2></request-message>

所以我的问题是,有没有一种方法可以发送XML而不转换为数据,或者有没有一种方法可以在PHP服务器端将NSData字符串转换为可读的XML

提前谢谢

帕齐

编辑:包括请求代码:

// Construct the webservice URL
NSURL *url = [NSURL URLWithString:@"http://localhost/web/check_data.php"];

NSString *requestXML = @"<?xml version='1.0'?><request-message><tag-1>VALUE1</tag-1><tag-2>VALUE2</tag-2></request-message>";

NSData *data = [requestXML dataUsingEncoding:NSUTF8StringEncoding];

// Create a request object with that URL
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:30];

[request setHTTPBody:data];
[request setHTTPMethod:@"POST"];
//构造Web服务URL
NSURL*url=[NSURL URLWithString:@”http://localhost/web/check_data.php"];
NSString*requestXML=@“VALUE1VALUE2”;
NSData*data=[requestXML dataUsingEncoding:NSUTF8StringEncoding];
//使用该URL创建请求对象
NSMutableURLRequest*request=[NSMutableUrlRequestWithURL:url缓存策略:NSURLRequestReloadIgnoringCacheData timeoutInterval:30];
[请求setHTTPBody:数据];
[请求设置HttpMethod:@“POST”];

将XML发送到
HTTP正文
并在PHP端解析,您需要将
内容类型
设置为
应用程序/XML;字符集=utf-8

NSString* sXMLToPost = @"<?xml version=\"1.0\" ?><request-message><tag-1></tag-1><tag-2></tag-2></request-message>";

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}

看看这个

HTTP主体上发送XML
并在PHP端解析它,您需要将
内容类型
设置为
应用程序/XML;字符集=utf-8

NSString* sXMLToPost = @"<?xml version=\"1.0\" ?><request-message><tag-1></tag-1><tag-2></tag-2></request-message>";

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}

看看这个

你能分享你如何在iPhone端创建请求的代码吗?在编辑部分添加了代码,然后完成以下操作以建立连接。。。连接=[[NSURLConnection alloc]initWithRequest:请求委托:自启动中间:是];你能分享你如何在iPhone端创建请求的代码吗?将代码添加到编辑部分,然后执行以下操作以建立连接。。。连接=[[NSURLConnection alloc]initWithRequest:请求委托:自启动中间:是];谢谢你的代码和我的代码看起来没什么不同。我已经添加了[request setValue:@“application/xml;charset=…”;不确定是否是Obj-C代码…在服务器上成功获取您的请求?不完全确定。。。我已经将脚本设置为现在输出发送给它的内容,并允许connectDidFinish将返回的内容打印到控制台。没有归还任何东西。在PHP方面,我有两行代码可以输出:$rawPostXML=file\u get\u contents('php://input"); echo$rawPostXML<代码>连接完成?你为什么用这个?您确定正在使用NSURLConnection sendSynchronousRequest:?谢谢。。。你的代码和我的代码看起来没什么不同。我已经添加了[request setValue:@“application/xml;charset=…”;不确定是否是Obj-C代码…在服务器上成功获取您的请求?不完全确定。。。我已经将脚本设置为现在输出发送给它的内容,并允许connectDidFinish将返回的内容打印到控制台。没有归还任何东西。在PHP方面,我有两行代码可以输出:$rawPostXML=file\u get\u contents('php://input"); echo$rawPostXML<代码>连接完成?你为什么用这个?您确定正在使用
NSURLConnection sendSynchronousRequest: