1

IIS7サーバーからファイルを取得するiPhoneアプリを作成しています。このファイルを取得するために、単純な古いNSURLRequestを使用しています。別のWebサーバーを使用している場合、リクエストは正常に機能しますが、何らかの理由で、これは400の不正なリクエストを返し続けます。そこで、NSURLRequestが送信するリクエストを確認したところ、次のようになりました。

::1 [Wed Sep 01 20:18:53 -0400 2010]: GET /some.file
::1 [Wed Sep 01 20:18:53 -0400 2010]:  HTTP/1.1
::1 [Wed Sep 01 20:18:53 -0400 2010]: Host: localhost
::1 [Wed Sep 01 20:18:53 -0400 2010]: User-Agent: MyApp/1.0 CFNetwork/485.2 Darwin/10.4.0
::1 [Wed Sep 01 20:18:53 -0400 2010]: Accept: */*
::1 [Wed Sep 01 20:18:53 -0400 2010]: Accept-Language: en-us
::1 [Wed Sep 01 20:18:53 -0400 2010]: Accept-Encoding: gzip, deflate
::1 [Wed Sep 01 20:18:53 -0400 2010]: Connection: keep-alive
::1 [Wed Sep 01 20:18:53 -0400 2010]: 

telnetを使用して、Webサーバーに直接接続しました。以下を送信しました:

GET /some.file HTTP/1.1\r\n

これは正常に機能し、サーバーはファイルで応答しました。

NSURLRequestがHTTP/1.1を別の行に配置すると、IIS7が不正な要求を返すように感じます。

誰かが私がこの状況を改善する方法を知っていますか?サーバーやクライアントで変更を加えてもかまいませんが、残念ながらIISで立ち往生しています。

ありがとう

4

2 に答える 2

1

それを考え出した...私のURLには最後に\nがありました。NSURLRequest が HTTP/1.1 を別の行に置いていたのも不思議ではありません。NSURL が文字列をクリーンアップしないことに驚いています。おお。

于 2010-09-02T13:28:04.133 に答える