报错:Entity: line 1: parser error : Start tag expected, '<' not found
以下为请求XML,用的是ASIHTTPRequest请求框架,不知错在何处
<?xml version='1.0' encoding='UTF-8' standalone='yes'?><Root><method action="E"><classPath>com.portal.android.ExecuteAndroid</classPath><methodName>changeState</methodName></method><kvdata ID="" SHIP_NAME="ceshi01" CARGO_REMARK="种用硬粒小麦100111009012吨" DOCK="E201205160096297" BERTH="E201205160096300" CARGO_TYPE="0" CARGO_NAME="种用硬粒小麦" CARGO_HS_CODE="1001110090" CARGO_WEIGHT="12" BILL_INFO="" MANIFEST_INFO="" CLIENT="" ISDECL="NODECL" CREATE_ORG="江阴市外轮代理有限公司" CREATE_ORG_ID="201307220000013086" CREATE_USER_ID="201306030000007077" CREATE_USER="杨柳絮" UPDATE_USER_ID="201306030000007077" UPDATE_USER="杨柳絮" AGENTID="E201511120021555"></kvdata></Root>
请求数据代码:
NSString *kvr = [NSString stringWithFormat:@"<kvdata ID="%@" SHIP_NAME="%@" CARGO_REMARK="%@" DOCK="%@" BERTH="%@" CARGO_TYPE="%@" CARGO_NAME="%@" CARGO_HS_CODE="%@" CARGO_WEIGHT="%@" BILL_INFO="%@" MANIFEST_INFO="%@" CLIENT="%@" ISDECL="%@" CREATE_ORG="%@" CREATE_ORG_ID="%@" CREATE_USER_ID="%@" CREATE_USER="%@" UPDATE_USER_ID="%@" UPDATE_USER="%@" AGENTID="%@">",@"",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:@"<?xml version='1.0' encoding='UTF-8' standalone='yes'?>"];
[requestXml appendString:@"<Root>"];
[requestXml appendString:@"<method action="E">"];
NSString *name = [NSString stringWithFormat:@"<classPath>%@</classPath><methodName>%@</methodName></method>",classPath,metherName];
[requestXml appendString:name];[requestXml appendString:kvrStr];
[requestXml appendString:@"</kvdata>"];
[requestXml appendString:@"</Root>"];//NSLog(@"%@",requestXml);
NSData *requestData = [requestXml dataUsingEncoding:NSUTF8StringEncoding];[request appendPostData:requestData];
[request setRequestMethod:@"post"];//请求执行完的回掉
[request setCompletionBlock:^{//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;
}];
//异常出现
[request setFailedBlock:^{//NSLog(@"Failed"); [self showAlert:@"网络请求失败,请稍后再试"]; // [_delegate didFairToReceiveData:nil andTag:tag];
}];
[request startAsynchronous];
}
由于把请求数据加密了,请求回调时处理数据未解密,所以导致了错误