ASIFormDataRequest responseString返回nscfstring或nscfconstant字符串

时间:2012-05-18 13:12:30

标签: iphone objective-c web-services nsstring asihttprequest

我正在使用ASIFormDataRequest通过视频文件调用web service。如果视频很小,但如果视频大约30秒或更长时间,那么它的效果会很好,那么它的响应会返回__NSCFString或某个时间__NSCFConstantString

我的代码如下。

__block ASIFormDataRequest *request=[[ASIFormDataRequest alloc] initWithURL:[NSURL URLWithString:APP_APIURL]];

    [request setPostValue:strVal forKey:@"jsonRequest"];
    if (videoData) {
        [request setData:videoData withFileName:videoName andContentType:nil forKey:@"videoFile"];
    }

    [request startSynchronous];
    request.timeOutSeconds=999999999;
    // response 
    NSString *strResponse=[request responseString];

if (strResponse) {
    SBJsonParser *parser=[[SBJsonParser alloc] init];
    NSMutableDictionary *dicData=[[parser objectWithString:strResponse] valueForKey:@"uploadVideo"];

请帮我解决这个问题。

Shivam

1 个答案:

答案 0 :(得分:0)

以下是您问题的解决方案:

  • 使用内省并检查返回的对象是否为类。如果你得到一个“常量”字符串,可能不是你所期望的。打印或检查内容。
  • 如果您正在接收视频文件 - 请使用[request responseData]或更好,请使用ASIHTTPRequest库中描述的文件保存技术。如何下载文件并同时解析json响应?
  • 使用JSONKit - 恕我直言最快的json解析器。
相关问题