0

私は以下のコードを試しました:

public class URLUploader {

    public static void main(String[] args) throws IOException 
    {

        URL url = new URL("http://77.203.65.164:6011");
        URLConnection conn = url.openConnection();
        conn.setDoOutput(true);

        String name = "user";
                String password = "password";

                String authString = name + ":" + password;
                System.out.println("auth string: " + authString);
                byte[] authEncBytes = Base64.encodeBase64(authString.getBytes());
                String authStringEnc = new String(authEncBytes);
                System.out.println("Base64 encoded auth string: " + authStringEnc);

        conn.setRequestProperty("Authorization", "Basic " + authStringEnc);
        OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream());

        writer.write("/var/www/html/kannel/javacode/13569595024298.xml");
        writer.flush();
        String line;
        BufferedReader reader = new BufferedReader(new    InputStreamReader(conn.getInputStream()));
        while ((line = reader.readLine()) != null) {
          System.out.println(line);
        }

        writer.close();
        reader.close();
    }
}

しかし、次のエラーが発生しました。

auth string: optiweb:optiweb
Base64 encoded auth string: b3B0aXdlYjpvcHRpd2Vi
    Exception in thread "main" java.io.IOException: Server returned HTTP response code: 500 for URL: 77.203.65.164:6011
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1403)
    at URLUploader.main(URLUploader.java:32)

何が間違っている可能性がありますか?

4

1 に答える 1

0

まず、HTTP レスポンス コード 500 は「Internal Server Error」であり、認証とは関係ありません。

第二に、声明

writer.write("/var/www/html/kannel/javacode/13569595024298.xml");

実際のファイルの内容ではなく、ファイルの完全なパス名をサーバーに書き込むだけで、末尾の改行さえもありません。これは確かにサーバーが予期しているものではなく、500 応答の原因である可能性があります。作成して送信しているリクエストには他の問題もある可能性がありますが、接続の反対側にあるものに関する詳細な API リファレンスがなければ、それ以上のヘルプを提供することは困難です。

于 2013-01-09T05:02:44.400 に答える