接口地址是:http://xxxx/Service.asmx
我现在要调用当中的这个接口“MemberLogin”
方法如下:
NSURL *url = [NSURL URLWithString:@"http://xxxx/Service.asmx?op=MemberLogin"];
    ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
    [request setPostValue:@"xx" forKey:@"UserName”];   //传參
[request setDelegate:self];
    [request startAsynchronous];返回数据不对,大神帮我看看问题处在哪?

解决方案 »

  1.   

    这是我通过ASIHttpRequest访问Web service的方法,请注意提示注意的两句:/**
     * @brief 调用WCF Post接口方法
     *
     * @param  url  接口地址,应以“http://”打头
     * @param  parameterBodyJson  参数 Body json字符串
     */
    + (void)callWCFPostInterface:(NSString *)url parameterBodyJson:(NSString *)parameterBodyJson callback:(void (^)(BOOL isComplete,NSString *returnString))block
    {
        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        
            ASIFormDataRequest *request = [[ASIFormDataRequest alloc] initWithURL:[NSURL URLWithString:url]];
            
            //参数
            NSData *myPostData = [parameterBodyJson dataUsingEncoding:NSUTF8StringEncoding];
            [request setPostBody:[NSMutableData dataWithData:myPostData]];
            [request setRequestMethod:@"POST"]; //请注意这句
            [request addRequestHeader:@"Content-Type" value:@"application/json"]; //请注意这句
            
            //调用接口
            [request startSynchronous];
            
            //返回数据
            NSString *responseString = [request responseString];
            [request release];
            
            //回调
            dispatch_async(dispatch_get_main_queue(),^{
                //记录流量
                [PersistenceManager appendDataTraffic:([responseString dataUsingEncoding:NSUTF8StringEncoding].length * 0.1)];
                
                if(block){
                    if(responseString)
                        block(YES,responseString);
                    else
                        block(NO,@"");
                }
            });
            
        });
    }