首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >打印NSMutableURLRequest内容

打印NSMutableURLRequest内容
EN

Stack Overflow用户
提问于 2012-11-14 16:56:00
回答 2查看 22.9K关注 0票数 15

我想问一下,是否有人尝试过打印出NSMutableURLRequest *请求的值;

这是我的场景,我已经形成了我的xml,并尝试使用Firefox Poster插件发送它,我成功地处理了有效和无效的内容,所以是时候进入iOS了,不幸的是,使用iOS它似乎不能正常工作,尽管我总是得到Bad request (400)的响应,我怀疑这是由格式错误的XML内容引起的;所以我想在发送请求之前,我想检查它是否以正确的形式出现。

因此,它可以归结为“如何打印出(nslog等)*请求的内容”。

示例代码如下:

代码语言:javascript
复制
    NSURL *URL = [NSURL URLWithString:@"http://xxx.xxx.xxx.xxx/ps"];

    NSMutableURLRequest *request = [NSMutableURLRequest                                         requestWithURL:URL cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:60];
    NSString *msgLength = [NSString stringWithFormat:@"%d", [self.xmlLogin length]];

    //NSString *params = [[NSString alloc] initWithFormat:@"%@",[self xmlLogin]];
    [request addValue:@"application/xxx.ven.xml" forHTTPHeaderField:@"Content-Type"];
    [request addValue:msgLength forHTTPHeaderField:@"Content-Length"];
    [request setHTTPMethod:@"POST"];
    [request setValue:@"identity" forHTTPHeaderField:@"Accept-Encoding"];
    [request setValue:@"windows-1251" forHTTPHeaderField:@"Accept-Charset"];
    [request setCachePolicy:NSURLRequestReturnCacheDataElseLoad];
    [request setHTTPBody:[[self xmlLogin] dataUsingEncoding:NSUTF8StringEncoding]];

此代码片段

代码语言:javascript
复制
NSLog(@"Request %@\n",request);

结果至

代码语言:javascript
复制
<NSMutableURLRequest http://xxx.xxx.xxx.xxx/ps>

同时做一些像这样的事情

代码语言:javascript
复制
NSLog(@"Request %@\n",[request HTTPBody]);

结果至

代码语言:javascript
复制
<4c697665 3e383634 30303c2f 54696d65 546f4c69 76653e20 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 203c5365 7373696f 6e436f6f 6b69653e 436f6c69 62726961 494d5053 5f333734 36323032 39322e34 38373931 345f3737 33313c2f 53657373 696f6e43 6f6f6b69 653e2020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 3c2f4c6f 67696e2d 52657175 6573743e 3c2f5472 616e7361 6374696f 6e436f6e 74656e74 3e3c2f54 72616e73 61637469 6f6e3e20 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 203c2f53 65737369 6f6e3e3c 2f57562d 4353502d 4d657373 6167653e>

我知道这个十六进制值的集合是可以转换的;如何转换?(尽管找到方法只是一个愿望清单)

真正的问题归结为请求的内容,我渴望找到如何查看原始内容,并检查它是否真的是正确的形式。

谢谢,

EN

回答 2

Stack Overflow用户

发布于 2013-10-07 21:21:40

代码语言:javascript
复制
NSLog(@"Request body %@", [[NSString alloc] initWithData:[request HTTPBody] encoding:NSUTF8StringEncoding]);
票数 30
EN

Stack Overflow用户

发布于 2015-07-31 05:31:34

代码语言:javascript
复制
- (NSString *)formatURLRequest:(NSURLRequest *)request
{
    NSMutableString *message = [NSMutableString stringWithString:@"---REQUEST------------------\n"];
    [message appendFormat:@"URL: %@\n",[request.URL description] ];
    [message appendFormat:@"METHOD: %@\n",[request HTTPMethod]];
    for (NSString *header in [request allHTTPHeaderFields])
    {
        [message appendFormat:@"%@: %@\n",header,[request valueForHTTPHeaderField:header]];
    }
    [message appendFormat:@"BODY: %@\n",[[NSString alloc] initWithData:[request HTTPBody] encoding:NSUTF8StringEncoding]];
    [message appendString:@"----------------------------\n"];
    return [NSString stringWithFormat:@"%@",message];
}

- (NSString *)formatURLResponse:(NSHTTPURLResponse *)response withData:(NSData *)data
{
    NSString *responsestr = [[NSString alloc] initWithBytes:[data bytes] length:[data length] encoding:NSUTF8StringEncoding];
    NSMutableString *message = [NSMutableString stringWithString:@"---RESPONSE------------------\n"];
    [message appendFormat:@"URL: %@\n",[response.URL description] ];
    [message appendFormat:@"MIMEType: %@\n",response.MIMEType];
    [message appendFormat:@"Status Code: %ld\n",(long)response.statusCode];
    for (NSString *header in [[response allHeaderFields] allKeys])
    {
        [message appendFormat:@"%@: %@\n",header,[response allHeaderFields][header]];
    }
    [message appendFormat:@"Response Data: %@\n",responsestr];
    [message appendString:@"----------------------------\n"];
    return [NSString stringWithFormat:@"%@",message];
}
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13375658

复制
相关文章

相似问题

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