1

これは私をかなり混乱させます。私が次のように入力した場合:

NSString *LoginURLString = [NSString stringWithFormat:@"http://dispatch.americantaxi.com:8080/AT/servlet/OnlineOrderServices?command=retrieveCustomerCommonPlaces&customerId=13242134"];
//NSLog output:  http://dispatch.americantaxi.com:8080/AT/servlet/OnlineOrderServices?command=retrieveCustomerCommonPlaces&customerId=2314084

これを URL 要求で使用すると、問題なく動作しますが、これを動的にする必要があるため、次を使用して URL 文字列を新しい UserID と連結させます。

NSString *user = [NSString stringWithFormat:@"%@", [[NSUserDefaults standardUserDefaults]stringForKey:@"CustomerID"]];

//user = [[NSUserDefaults standardUserDefaults] stringForKey:@"CustomerID"];

NSString *LoginURLString = [NSString stringWithFormat:@"http://dispatch.americantaxi.com:8080/AT/servlet/OnlineOrderServices?command=retrieveCustomerCommonPlaces&customerId=%@", user];
//NSLog output:  http://dispatch.americantaxi.com:8080/AT/servlet/OnlineOrderServices?command=retrieveCustomerCommonPlaces&customerId=2314084    

リクエスト初期化子の残りの部分は次のとおりです。

 NSString *urlString = LoginURLString;
responseData = [NSMutableData data];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:urlString]];
[[NSURLConnection alloc] initWithRequest:request delegate:self];

リクエストを処理するその他のメソッド:

   -(void) connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{
    [responseData setLength:0];
}

-(void) connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
    [responseData appendData:data];
}

-(void) connectionDidFinishLoading:(NSURLConnection *)connection{
    //   [connection release];

    CommonPickUpArray = [[NSMutableArray alloc] init];
    CommonLocationInfoArray = [[NSMutableArray alloc] init];

    NSString *data = [[NSString alloc] initWithData:responseData encoding:NSASCIIStringEncoding];
    NSLog(@"%@", data);
}

このリクエストは決して開始されません。理由が本当にわかりません。2 つの文字列を NSLog に出力しようとしましたが、どちらの方法でもまったく同じに見えます。誰でも説明できますか?ご協力いただきありがとうございます!

編集: ConnectiondidFailWithErrorメソッドはこれを出力しています:

エラー Domain=NSURLErrorDomain Code=-1000 "bad URL" UserInfo=0xf6a6f50 {NSUnderlyingError=0xf6a75d0 "bad URL", NSLocalizedDescription=bad URL}

回答 1 からの出力:

2012-05-08 13:45:24.959 AmericanTaxi[1295:707] 接続がエラーで失敗しました: 不正な URL 2012-05-08 13:45:24.960 AmericanTaxi[1295:707] URL: (null)

urlString と LoginURLString の出力:

2012-05-08 13:57:40.415 AmericanTaxi[1320:707] LoginURLString: http://dispatch.americantaxi.com:8080/AT/servlet/OnlineOrderServices?command=retrieveCustomerCommonPlaces&customerId=2314084

2012-05-08 13:57:40.417 AmericanTaxi[1320:707] urlstring: http://dispatch.americantaxi.com:8080/AT/servlet/OnlineOrderServices?command=retrieveCustomerCommonPlaces&customerId=2314084

4

1 に答える 1

1

didFailWithErrorで、URLを確認し、これをdidFailWithErrorデリゲートに追加して、なぜそれが悪いのかを確認します。

NSLog(@"Connection failed with error: %@", [error localizedDescription]);
NSLog(@"for the URL: %@", [[error userInfo] objectForKey:NSURLErrorFailingURLStringErrorKey]);

結果を投稿します。

于 2012-05-08T17:37:49.503 に答える