看起来标题字段的设置值(即@“Content-Type”)不会取值,除非它是base64编码的。方法文档说它需要一个普通的NSString,所以它确实无关紧要。但是,以这种方式编码似乎使后期请求的值无用......对吧? 见下文:
[req setHTTPBody:allData];
[req setHTTPMethod:@"POST"];
[req setValue:@"multipart/related; "
"boundary==_27da60ee13b84794c5873572c502aaae\n" forHTTPHeaderField:@"Content-Type"];
NSLog(@"\n\n\t\t===headerField content-type===\n\n%@", [req valueForHTTPHeaderField:@"Content-Type"]);
收率:
2010-12-22 09:53:23.008 uploadXMLText[96009:207]
===headerField content-type===
(null)
但是如果我将值字符串@“multipart ...”编码为base64:
收率:
2010-12-22 10:06:37.185 uploadXMLText[96234:207]
===headerField content-type===
bXVsdGlwYXJ0L3JlbGF0ZWQ7IGJvdW5kYXJ5PT1fMjdkYTYwZWUxM2I4NDc5`*
任何想法?
谢谢!
我
答案 0 :(得分:0)
在此处删除换行符:boundary==_27da60ee13b84794c5873572c502aaae\n
。将其更改为boundary==_27da60ee13b84794c5873572c502aaae
。这可能是一种保护自己不受试图注入额外标题的方法。
答案 1 :(得分:0)
首先,感谢您的所有答案!
其次,所有标题都在,请求正在发送,我实际上从服务器获得响应而不是" 400:您的请求很糟糕"。
此:
NSMutableString *data =
@"--=_27da60ee13b84794c5873572c502aaae\n"
"Content-Type: application/atom+xml\n\n"
"<atom:entry xmlns:atom=\"http://www.w3.org/2005/Atom\">"
"<media:group xmlns:media=\"http://search.yahoo.com/mrss/\">"
"<media:category scheme=\"http://gdata.youtube.com/schemas/2007/categories.cat\">Comedy</"
"media:category><media:description>test</media:description><media:keywords>"
"foo, var</media:keywords><media:title>test title</media:title></media:group></atom:entry>\n"
"--=_27da60ee13b84794c5873572c502aaae\n"
"Content-Type: video/mov\n"
"Content-Transfer-Encoding: binary\n\n";
NSMutableData *allData = [NSMutableData dataWithData:[data dataUsingEncoding:NSUTF8StringEncoding]];
[allData appendData:vidData];
NSString *str = @"\n--=_27da60ee13b84794c5873572c502aaae--";
[allData appendData:[str dataUsingEncoding:NSUTF8StringEncoding]];
发送此正文:
<atom:entry xmlns:atom="http://www.w3.org/2005/Atom"><media:group xmlns:media="http://search.yahoo.com/mrss/">
<media:category scheme="http://gdata.youtube.com/schemas/2007/categories.cat">Comedy</media:category>
<media:description>test</media:description>
<media:keywords>foo, var</media:keywords><media:title>test title</media:title>
</media:group></atom:entry>
--=_27da60ee13b84794c5873572c502aaae
Content-Type: video/mov
Content-Transfer-Encoding: binary
它最终工作并上传了文件!
再次感谢您的帮助,我希望这可以帮助任何未来的观众。
MiL3s