20

HTTPS 経由でデバイスからクラウドにファイルをアップロードするためのコードを少し書いています。

関連スニペット:

HttpsURLConnection conn = null; 
URL url = new URL(urlstring);
conn = (HttpsURLConnection) url.openConnection(); // exception here.

しかし、キャストはコンパイルされません:

06-20 15:58:05.311: E/FNF(30286): java.lang.ClassCastException: libcore.net.http.HttpURLConnectionImpl cannot be cast to javax.net.ssl.HttpsURLConnection

この同様の質問を見つけました: Java クラス HttpsURLConnection を使用していますが、sun パッケージから何もインポートしていません。

私の輸入品:

import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.URL;
import android.net.Uri;
import javax.net.ssl.HttpsURLConnection;
import android.util.Log;
import edu.mit.media.funf.storage.RemoteFileArchive;
import edu.mit.media.funf.util.LogUtil;

私はこれについてしばらく頭を悩ませてきましたが、何か提案はありますか?

4

4 に答える 4

82

方法1:urlStringで始まる必要があり、にキャストできるようにする必要はhttps://ありませ ん。http://HttpsURLConnection

方法2: urlStringがで始まる場合http://、に変更すると機能HttpsURLConnectionするHttpURLConnectionはずです

于 2012-06-20T20:25:41.470 に答える
0

url.openConnection();libcore.net.http.HttpURLConnectionImpl「conn」オブジェクトをタイプとして宣言しているときに、タイプのオブジェクトを返しているようimport javax.net.ssl.HttpsURLConnection;です。インポートと使用済みオブジェクトを分類する必要があります。たぶん、あなたはあなたがフォローしていたチュートリアルで何かを逃したでしょう。

于 2012-06-20T20:25:57.490 に答える