请问 ASIHTTPRequest 如何 post 不是标准的字符串?

iOS 码拜 9年前 (2015-05-04) 639次浏览 0个评论
 

例如 我要发送的网站是  http://192.168.63.13:9090/interface/queryVersion
post的字段是
detail={
    “deviceSn”: “e2132ee45c7b0fa762e4201cbe8b965d”,
    “deviceType”: “1”,
    “iosVersion”: “4.3.2”,
    “marketingFlag”: “appstore”,
    “appVersion”: “1.0”
}&v=1.0 
那么像这种不标准字段 我如何发送呢?   请高手解答 

请问 ASIHTTPRequest 如何 post 不是标准的字符串?
直接post不行么?
就是在HTTP的body中,放这个数据
请问 ASIHTTPRequest 如何 post 不是标准的字符串?
直接放 怎么放呢?  求支教  刚刚研究 asihttp
请问 ASIHTTPRequest 如何 post 不是标准的字符串?
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request setPostValue:@”Ben” forKey:@”first_name”];
请问 ASIHTTPRequest 如何 post 不是标准的字符串?
20分
很简单,首先
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
之后
[request appendPostData:[你的不标准字段 dataUsingEncoding:NSUTF8StringEncoding]];

这里,你的不标准字段必须是一个nsstring,你需要把你这一堆东西:
detail={
  “deviceSn”: “e2132ee45c7b0fa762e4201cbe8b965d”,
  “deviceType”: “1”,
  “iosVersion”: “4.3.2”,
  “marketingFlag”: “appstore”,
  “appVersion”: “1.0”
}&v=1.0  
放到一个字符窜里就可以了

请问 ASIHTTPRequest 如何 post 不是标准的字符串?
    NSURL *url = [NSURL URLWithString:kConnectionURLPrefix];
    
    NSMutableString *sendStr = [NSMutableString string];
//    [sendStr appendFormat:@”detail={“];
//    [sendStr appendFormat:@””deviceSn”: “e2132ee45c7b0fa762e4201cbe8b965d”,”];
//    [sendStr appendFormat:@””deviceType”: “1”,”];
//    [sendStr appendFormat:@””iosVersion”: “4.3.2”,”];
//    [sendStr appendFormat:@””marketingFlag”: “appstore”,”];
//    [sendStr appendFormat:@””appVersion”: “1.0””];
//    [sendStr appendFormat:@”}&v=1.0  “];
    [sendStr appendFormat:@”detail={“deviceSn”: “e2132ee45c7b0fa762e4201cbe8b965d”,”deviceType”: “1”,”iosVersion”: “4.3.2”,”marketingFlag”: “appstore”,”appVersion”: “1.0”}&v=1.0″];
    NSLog(@”sendStr : %@”,sendStr);
    
    
    ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
    [request appendPostData:[sendStr dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:NO]];
    [request setRequestMethod:@”POST”];

    request.delegate = self;
    
    [request startAsynchronous]; //异步调用 
这样调用后 还是错误   但是用别得方式 就可以解析出来 
难道是 asihttp 不支持吗? 

请问 ASIHTTPRequest 如何 post 不是标准的字符串?
20分
引用 4 楼 volcan1987 的回复:

很简单,首先
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
之后
[request appendPostData:[你的不标准字段 dataUsingEncoding:NSUTF8StringEncoding]];

这里,你的不标准字段必须是一个nsstring,你需要把你这一堆东西:
detail={……

这个可以解决。
Form Request 只适合 url encoded 类型的数据。

请问 ASIHTTPRequest 如何 post 不是标准的字符串?
10分
你不用管它里面是不是标准字符串啊?
你只要根据它的接口,加数据,设置为正确的头就行啦。

外部模块没有必要非要知道内部模块的某些实现细节,哪怕细节可能和想象中不太一样,也许是它的实现方法。


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明请问 ASIHTTPRequest 如何 post 不是标准的字符串?
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!