0

AFNetworking を使用して iOS v6.0 アプリからローカルの Cold Fusion 8 サーバーに接続していますが、同じマシン上ではなく同じネットワーク上にあり、接続がタイムアウトします。外部の公開サーバーを使用すると、正常に動作します。

IP アドレス経由で接続を試みましたが、うまくいきません。
IP アドレスにドメイン名を割り当てるホスト ファイルのエントリを試しましたが、これも機能しません。以下のエラーを参照してください。ただし、Webブラウザ経由で問題なく接続できます。
また、サーバー側のファイルもまったく同じです。Cold Fusion のバージョンは同じです。私が見つけることができる唯一の違いは、パブリック サーバーが IIS6 を使用する Win2003 であり、ローカル サーバーが IIS7 を使用する Windows7 であることです。

これがローカルネットワークで機能しない理由についての考え。ローカル開発を難しくします。

関連するコードは次のとおりです。

// load params
NSMutableDictionary *myParams = [[NSMutableDictionary alloc] init]; 
[myParams setValue:@"Hello" forKey:@"Parameter1"];
[myParams setValue:@"There" forKey:@"Parameter2"];

   // Load the base URL into a URL object
   // Changing this to an external public server works fine
NSURL *baseURL = [NSURL URLWithString:@"http://www.mylocalmachine.com/"];

// Create HTTP client and init with base url
AFHTTPClient *myHttpClient = [[AFHTTPClient alloc] initWithBaseURL:baseURL];

// POST request to path with the parameters
NSMutableURLRequest *myRequest = [myHttpClient requestWithMethod:@"POST" path:@"myfile.cfm" parameters:myParams];

// Block response from the HTTP client request and pass it back to the calling object
AFJSONRequestOperation *myOperation = [AFJSONRequestOperation JSONRequestOperationWithRequest:myRequest
                                                                                      success:^(NSURLRequest *mySuccessRequest, NSHTTPURLResponse *mySuccessResponse, id mySuccessJSON)
    {
        // PROCESS THE SUCCESS RESPONSE;
    }
                                                                                      failure:^(NSURLRequest *myFailureRequest, NSHTTPURLResponse *myFailureResponse, NSError *myFaliureError, id myFailureJSON)
    {
        // PROCESS THE FAILURE RESPONSE... AFTER 60 seconds the system will fallout to this block.



    }];

// Create a queue object
NSOperationQueue *myQueue = [[NSOperationQueue alloc] init];

// Add the operation object to the queue
[myQueue addOperation:myOperation];

以下は、myFailureError オブジェクトを出力するエラーです。

Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo=0x8481000 {NSErrorFailingURLStringKey=http://www.mylocalmachine.int/myfile.cfm, NSErrorFailingURLKey=http://www.mylocalmachine.int/myfile.cfm, NSLocalizedDescription=The request timed out., NSUnderlyingError=0x9189e20 "The request timed out."}

更新---- 問題は、IIS 7 にアクセスする iPhone シミュレーターの問題であると思われるものに絞り込まれたと思います。同じコードを使用して、同じネットワーク上の以前のバージョンの IIS に問題なくアクセスします。問題は、iPhone シミュレーターのユーザー エージェントにある可能性があります。iPhone Simulator の User-Agent を変更する方法、または IIS 7 で User-Agent を許可する方法を見つけようとしましたが、理解できないようです。iPhone Simulator 6 が提示する User-Agent は (iPhone Simulator; ios 6.0; Scale/2.00) です。

IIS 7 でこのユーザー エージェントを許可する方法、または iPhone シミュレーターでユーザー エージェントを変更する方法を知っている人はいますか?

他の誰かがこの問題を見たことがありますか? 前もって感謝します、エド

アップデート - -

こんにちは、NSMutableURLRequest を使用して User-Agent と Content-Type を変更する方法を見つけました。これらをブラウザが送信するものと一致するように変更し、FireFox ブラウザを再試行しましたが、役に立ちませんでした。IIS 7.5 の構成に問題があると思いますが、見つかりません... 助けてくれてありがとう!!! エド

4

2 に答える 2

0

最後の2行のコードを削除して書いてみてください

これを取り除く

NSOperationQueue *myQueue = [[NSOperationQueue alloc] init];

[myQueue addOperation:myOperation];

代わりにこれを追加

[myoperation start];

また、その最後の角括弧(])の前にfailure:nilを書きます

AFJSONRequestOperation *myOperation = [AFJSONRequestOperation    JSONRequestOperationWithRequest:myRequest
                                                                                   success:^(NSURLRequest *mySuccessRequest, NSHTTPURLResponse *mySuccessResponse, id mySuccessJSON)
{
    // PROCESS THE SUCCESS RESPONSE;
}
                                                                                  failure:^(NSURLRequest *myFailureRequest, NSHTTPURLResponse *myFailureResponse, NSError *myFaliureError, id myFailureJSON)
{
    // PROCESS THE FAILURE RESPONSE... AFTER 60 seconds the system will fallout to this block.

}failure:nil];

それが機能しているかどうかを教えてください...!!!! ハッピーコーディング!!!!!!!!

于 2012-11-02T07:26:26.717 に答える
0

この問題は解決しました。同様の問題を抱えている他の人を助けるために、解決策を投稿します。問題は、IIS 7 を実行しているシステムに AVG がインストールされていたことが判明しました。他のシステムは問題なく Web サーバーにアクセスできるため、特定するのは難しい問題でした。これは、IIS7 を実行しているシステムにアクセスする iPhone シミュレーターにのみ固有のものでした。同じ Mac 上で実行されている Safari や FireFox でも問題なく動作します。AVG 内で何が問題を引き起こしていたのか...それはまだ特定されていません。これが途中で誰かに役立つことを本当に願っています!

于 2012-11-05T19:10:02.327 に答える