1

現在AFNetworking(2.1.0)を使用してHTTPリクエストを処理するiOSアプリ用のSPDYを試しています。サーバー側では、Google App Engine を使用しています ( SPDYCheckで確認済み)。これは SPDY に適しています。

コードに SPDY を統合する方法を次に示します。

AFHTTPRequestOperationManager を使用しています

@interface MyClient : AFHTTPRequestOperationManager

そして、SPDYを埋め込みましたinitWithBaseURL:

- (id)initWithBaseURL:(NSURL *)url {
    self = [super initWithBaseURL:url];
    if (!self) {
        return nil;
    }

    // SPDY Config
    NSString *spdyURL = [NSString stringWithFormat:@"%@://%@:443",url.scheme, url.host];

    [SPDYURLConnectionProtocol registerOrigin:spdyURL];
    ...
  }

私のURLにはフォーマットが付いていることに注意してくださいhttps://myapp.appspot.com/_ah/SPDY registerOrigin:spdyURLに渡すときにフォーマットを変更すると、次のようになりますhttps://myapp.appspot.com:443

私はそれが私が必要とするすべてだと思いますか?しかし、SPDY コードを追加した後、リクエストを送信できませんでした。デバッグ メッセージに次のエラーが表示されました。

error response from api/users/v1/is_token_valid :
Error Domain=NSURLErrorDomain 
Code=-1001 
"The request timed out." 
UserInfo=0xdc2c250 {NSErrorFailingURLStringKey=https://myapp.appspot.com/_ah/api/users/v1/is_token_valid?
user_token=[a_token], 
NSErrorFailingURLKey=https://myapp.appspot.com/_ah/api/users/v1/is_token_valid?
user_token=[a_token], 
NSLocalizedDescription=The request timed out., NSUnderlyingError=0xf270e60 "The request timed out."}

私にはまったく手がかりがありません。iOS で SPDY を使用した経験のある人が助けてくれることを願っています!!

4

3 に答える 3

2

残念ながら、Apple の TLS 実装は、Google App Engine で使用される NPN をサポートしていません。詳細については、CocoaSPDY GitHub READMEを参照してください。

現時点では、Google App Engine で CocoaSPDY を使用することはできません。

于 2014-03-07T12:18:10.150 に答える
0

大丈夫ですか?SPDY プロトコルのサポートは、OS X Yosemite および iOS 8 の NSURLSession で利用できるようになり、NSURLSession によって透過的にサポートされていることがわかりました。詳細を見る:https://developer.apple.com/videos/wwdc/2014/ [Foundation Networking の新機能] しかし、なぜうまくいかないのでしょうか? CocoaSPDY を使用する場合は、manager.session.configuration.protocolClasses=@[[SPDYURLSessionProtocol クラス]]; を設定します。大丈夫です;

于 2015-08-18T08:46:01.350 に答える