ホームページ > バックエンド開発 > PHPチュートリアル > iOS开发后台请求报错,帮忙看下XML格式哪里有问题 急急急!!!大神们

iOS开发后台请求报错,帮忙看下XML格式哪里有问题 急急急!!!大神们

WBOY
リリース: 2016-06-06 20:11:08
オリジナル
1114 人が閲覧しました

报错:Entity: line 1: parser error : Start tag expected, '以下为请求XML,用的是ASIHTTPRequest请求框架,不知错在何处
com.portal.android.ExecuteAndroidchangeState

请求数据代码:
NSString *kvr = [NSString stringWithFormat:@"",@"",cell.shipNameTextField.text,cargoRemark,self.dockModel.t2,self.berthModel.t2,cargoType,self.cargoModel.t2,self.cargoModel.t1,cell.cargoWeightTextField.text,cell.billInfoTextField.text,@"",cell.delegateTextField.text,@"NODECL",appDelegate.userInfo.ORG_NAME,appDelegate.userInfo.ORG_ID,appDelegate.userInfo.USER_ID,appDelegate.userInfo.USER_NAME,appDelegate.userInfo.USER_ID,appDelegate.userInfo.USER_NAME,self.personModel.t2];
[req sendRequest:@"com.portal.android.ExecuteAndroid" metherName:@"changeState" kvrStr:kvr andTag:4001 andUrl:WebServeUrl];

  • (void)sendRequest:(NSString )classPath metherName:(NSString )metherName kvrStr:(NSString )kvrStr andTag:(NSInteger) tag andUrl:(NSString )url
    {
    __block ASIHTTPRequest *request = [[ASIHTTPRequest alloc] initWithURL:[NSURL URLWithString:url]];
    // NSLog(@"%@",WebServeUrl);
    NSMutableString *requestXml = [[NSMutableString alloc] init];
    [requestXml appendString:@""];
    [requestXml appendString:@""];
    [requestXml appendString:@""];
    NSString *name = [NSString stringWithFormat:@"%@%@
    ",classPath,metherName];
    [requestXml appendString:name];

    [requestXml appendString:kvrStr];
    [requestXml appendString:@""];
    [requestXml appendString:@""];

    //NSLog(@"%@",requestXml);
    NSData *requestData = [requestXml dataUsingEncoding:NSUTF8StringEncoding];

    [request appendPostData:requestData];
    [request setRequestMethod:@"post"];

    //请求执行完的回掉
    [request setCompletionBlock:^{

    <code>   //NSLog(@"Success");
       NSData *decompressData = [request responseData];
       GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithData:decompressData options:0 error:Nil];
       GDataXMLElement *rootElement = [doc rootElement];
       NSArray *result = [rootElement elementsForName:@"result"];
       for (GDataXMLElement *response in result) {
           NSString *code = [[response attributeForName:@"code"] stringValue];
           NSString *msg = [[response attributeForName:@"msg"] stringValue];
           //01是成功,其余是错误
           if (![code isEqualToString:@"01"]) {
               [self showAlert:msg];
           } else {
               NSArray *datasetArray = [rootElement elementsForName:@"kvdata"];
               NSArray *kvadaArray = [rootElement elementsForName:@"dataset"];
               GDataXMLElement *data = [kvadaArray objectAtIndex:0];
               NSArray *dataArray = [data elementsForName:@"data"];
               if ([datasetArray count] > 0) {
                   [_delegate didReceiveData:datasetArray andTag:tag];
               }else{
                   [_delegate didReceiveData:dataArray andTag:tag];
               }
           }
       }
       request = nil;</code>
    ログイン後にコピー
    ログイン後にコピー

    }];

    //异常出现
    [request setFailedBlock:^{

    <code>   //NSLog(@"Failed");
       [self showAlert:@"网络请求失败,请稍后再试"];
       //        [_delegate didFairToReceiveData:nil andTag:tag];</code>
    ログイン後にコピー
    ログイン後にコピー

    }];

    [request startAsynchronous];
    }

回复内容:

报错:Entity: line 1: parser error : Start tag expected, '以下为请求XML,用的是ASIHTTPRequest请求框架,不知错在何处
com.portal.android.ExecuteAndroidchangeState

请求数据代码:
NSString *kvr = [NSString stringWithFormat:@"",@"",cell.shipNameTextField.text,cargoRemark,self.dockModel.t2,self.berthModel.t2,cargoType,self.cargoModel.t2,self.cargoModel.t1,cell.cargoWeightTextField.text,cell.billInfoTextField.text,@"",cell.delegateTextField.text,@"NODECL",appDelegate.userInfo.ORG_NAME,appDelegate.userInfo.ORG_ID,appDelegate.userInfo.USER_ID,appDelegate.userInfo.USER_NAME,appDelegate.userInfo.USER_ID,appDelegate.userInfo.USER_NAME,self.personModel.t2];
[req sendRequest:@"com.portal.android.ExecuteAndroid" metherName:@"changeState" kvrStr:kvr andTag:4001 andUrl:WebServeUrl];

  • (void)sendRequest:(NSString )classPath metherName:(NSString )metherName kvrStr:(NSString )kvrStr andTag:(NSInteger) tag andUrl:(NSString )url
    {
    __block ASIHTTPRequest *request = [[ASIHTTPRequest alloc] initWithURL:[NSURL URLWithString:url]];
    // NSLog(@"%@",WebServeUrl);
    NSMutableString *requestXml = [[NSMutableString alloc] init];
    [requestXml appendString:@""];
    [requestXml appendString:@""];
    [requestXml appendString:@""];
    NSString *name = [NSString stringWithFormat:@"%@%@
    ",classPath,metherName];
    [requestXml appendString:name];

    [requestXml appendString:kvrStr];
    [requestXml appendString:@""];
    [requestXml appendString:@""];

    //NSLog(@"%@",requestXml);
    NSData *requestData = [requestXml dataUsingEncoding:NSUTF8StringEncoding];

    [request appendPostData:requestData];
    [request setRequestMethod:@"post"];

    //请求执行完的回掉
    [request setCompletionBlock:^{

    <code>   //NSLog(@"Success");
       NSData *decompressData = [request responseData];
       GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithData:decompressData options:0 error:Nil];
       GDataXMLElement *rootElement = [doc rootElement];
       NSArray *result = [rootElement elementsForName:@"result"];
       for (GDataXMLElement *response in result) {
           NSString *code = [[response attributeForName:@"code"] stringValue];
           NSString *msg = [[response attributeForName:@"msg"] stringValue];
           //01是成功,其余是错误
           if (![code isEqualToString:@"01"]) {
               [self showAlert:msg];
           } else {
               NSArray *datasetArray = [rootElement elementsForName:@"kvdata"];
               NSArray *kvadaArray = [rootElement elementsForName:@"dataset"];
               GDataXMLElement *data = [kvadaArray objectAtIndex:0];
               NSArray *dataArray = [data elementsForName:@"data"];
               if ([datasetArray count] > 0) {
                   [_delegate didReceiveData:datasetArray andTag:tag];
               }else{
                   [_delegate didReceiveData:dataArray andTag:tag];
               }
           }
       }
       request = nil;</code>
    ログイン後にコピー
    ログイン後にコピー

    }];

    //异常出现
    [request setFailedBlock:^{

    <code>   //NSLog(@"Failed");
       [self showAlert:@"网络请求失败,请稍后再试"];
       //        [_delegate didFairToReceiveData:nil andTag:tag];</code>
    ログイン後にコピー
    ログイン後にコピー

    }];

    [request startAsynchronous];
    }

由于把请求数据加密了,请求回调时处理数据未解密,所以导致了错误

格式没错哦,你用一个支持xml的ide打开一下就可以知道有没有语法错误。。。

请求数据是不是有错误?
能不能把你打印请求数据的代码贴出来

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート