0

別のアプリで同様のコードを使用しましたが、正常に機能していますが、現在のアプリで(別のIP / cgiスクリプト)試してみると、機能しません。

NSString *iQuery = [NSString stringWithFormat:@"206.196.111.206/rego/test.cgi?country=AU"];  
NSString *query = [NSString stringWithContentsOfURL:[NSURL URLWithString:iQuery] encoding:NSUTF8StringEncoding error:&errorStr];    
NSData *resultJson = [query dataUsingEncoding:NSUTF8StringEncoding];   
if(query){
   NSString *res = [[NSString alloc] initWithData:resultJson encoding:NSUTF8StringEncoding];
} else {        
   printf("Error is: %s", errorStr);
}

クエリ206.196.111.206/rego/test.cgi?country=AUをIEまたはfirefoxに貼り付けると、本来の動作を実行します(4桁のコードを返します)

エスケープされた文字列も試してみました:

    NSString *iQuery = [NSString stringWithFormat:@"206.196.111.206/rego/test.cgi?country=AU"]; 
    NSString *escapedURL = [iQuery stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];     
    NSString *query = [NSString stringWithContentsOfURL:[NSURL URLWithString:escapedURL] encoding:NSUTF8StringEncoding error:&errorStr];
    NSData *resultJson = [query dataUsingEncoding:NSUTF8StringEncoding];   
    if(query) {
        NSString *res = [[NSString alloc] initWithData:resultJson encoding:NSUTF8StringEncoding];    
    } else {
        printf("Error is: %s", errorStr);    
    }

if(query)はfalseを返します。

何か案は?前もって感謝します。

4

1 に答える 1

0

リクエスト文字列の前にプロトコルプレフィックスを追加してください"http://"。これで問題が解決します。4桁の数字が返されるため、エラーの内容は次のようになります。

"Error the operation could not be completed."

于 2012-11-06T07:37:14.417 に答える