0

いくつかの画像のコンテンツを取得するためにHttpGetを使用しています。それはうまく機能しましたが、今では私が使用している新しいサーバーでエラーが発生し、次の形式で画像が返されます。

https://amx-sfs.qpass.com/d/da/207b3f6f-4fda-4faf-b7ae-a186530e1245

エラーは、ホスト名がnullではない可能性があることです

調査したところ、URLにアンダースコアが表示されるとエラーが発生するのが一般的ですが、私のURLには、URIで受け入れられると思われるハイフンしか含まれていません。とにかく私はまた、成功せずにURLをエスケープするために以下を使用しようとしました:

HttpGet mHttpGet = new HttpGet(new URI(null,item.getImageUrl(),null));

他に何が問題を引き起こしている可能性があり、どうすればそれを解決できますか?

前もって感謝します

編集

私は最初にURLを使用して直接試しました

new HttpGet(item.getImageUrl())

それから私も4つの引数で試しました:

HttpGet mHttpGet = new HttpGet(new URI("https","amx-sfs.qpass.com",item.getImageUrl().substring(25),null));

同じ結果で、HttpGetオブジェクトをデバッグしてURIオブジェクトを監視しても、ホストプロパティは正常に表示されます(amx-sfs.qpass.com)が、同じ例外が発生します。

4

4 に答える 4

0

URIをエンコードしましたか?たとえば、スペースやその他の特殊文字を削除して、何かを壊しますか?android.net.Uri.encode(String s)をお試しください

HttpGet mHttpGet = new HttpGet(new URI(null、android.net.Uri.encode(item.getImageUrl())、null));

これをデバッグして常にURLを出力し、エラーが発生したURLを分析するための最良の方法。

于 2012-05-11T16:05:30.253 に答える
0

間違ったコンストラクターを使用していると思います。3つの引数のURIコンストラクターには、次の署名があります。

public URI(String scheme, String ssp, String fragment)

ただし、SSPではなく2番目の引数としてURLを指定しています。URL文字列を引数として取る1つの引数コンストラクターを使用する必要があると思います。

于 2012-05-11T17:12:15.340 に答える
0

JavaやAndroidの問題はありませんでした。その結果、サーバーからのリクエストがデバイスから送信されたときにサーバーがリクエストを変更します...

于 2012-05-11T20:37:56.877 に答える
-1

ハイフン「-」またはアンダースコア「_」を使用せずにホスト名を試してみてください。機能するかどうかを確認してください。

于 2013-10-23T06:19:02.337 に答える