2016-09-19 9 views
2

NSURLSessionリクエストHTTP/2.0iOS10 NSURLSession HTTP/2無効

iOS9で動作します。 iOS10

enter image description here

enter image description here

が、無効な私のコード:



    NSURLSession *session = [NSURLSession sharedSession]; 
    request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://ga.seeyouyima.com/page"]]; 
    [request setHTTPMethod:@"POST"]; 
    [[session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { 
     if (completedBlock) { 
      completedBlock(data, response, error); 
     } 
    }] resume]; 

+1

コードは必須です。 –

+0

証明書の設定に問題がある可能性があります。私は似ている[問題](http://stackoverflow.com/q/39544547/3871718)。 – new2ios

+0

サーバー証明書はTLSv1.2を使用します。 –

答えて

7

チャールズプロキシ4は、iOSの10はHTTP/2を使用しないようになりますように見えます。あなたはチャールズ・プロキシを有効にする場合は、サイトを訪問している間

https://http2.akamai.com/demo

:あなたがiOSの10でのモバイルSafariでアカマイHTTP/2のデモをロードすることにより、これを実証することができますiOSの9

で正常に動作するようですあなたのブラウザはHTTP/2をサポートしていないことをあなたに報告します。

+0

これは正解です。 Charles Proxy 4は、iOS 10にHTTP/2を使用させません。チャールズプロキシ4を使用してHTTP/2リクエストを盗聴する必要がある場合は、iOS 9を使用してください。 – ccoroom

+0

また、不思議に思う人のために、iOS 9シミュレータがこれに対応しています。 –

+0

私はチャールズとNSURLSessionとHTTP 2を使って同じ振る舞いをしていますが、これは奇妙であれば親切です。チャールズが他のHTTP 2リクエスト(たとえばカール)をプロキシで成功させると、チャールズがHTTP 2を失敗させるのはなぜですか? – Jan