私はJavaの経験はありません。私はProcessingを実験しようとしています。Java.ioエンコーディングとは異なる出力エンコーディングを処理していますか?
http postコマンドを使用して512バイトの配列をWebサーバーに送信する処理のスクリプトを作成しようとしています。これはすべてうまくいきます(インターネットで掘り下げたコードのおかげで!)が、エンコーディングに問題があります。私は0xFFでいっぱいの文字配列を作成しています。これは出力ウィンドウに512 'ÿ'文字で表示されます。問題はHTTPScoopが一連の0xD8文字または 'Ø'文字としてポストヘクスを示すことです。私はコンソールが1文字を印刷していて、出力ストリームが別の文字を送信しているように見えるのは不明です。以下
コード:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
public static void main(String[] args) {
try {
// Construct data
char[] anArray = new char[512];
char charFillValue = 0xFF;
Arrays.fill(anArray, charFillValue);
String str = new String(anArray);
println(str);
String data = str;
println(data);
// Send data
URL url = new URL("http://10.10.155.120:8081/set.cgi?dst=p1");
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(data);
wr.flush();
// Get the response
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = rd.readLine()) != null) {
System.out.println(line);
}
wr.close();
rd.close();
} catch (Exception e) {
}
}
すべてのヘルプははるかに高く評価されるだろう!
'catch(Exception e){}'壊れたコードで例外を無視しないでください!それは 'catch(Exception e){e.printStackTrace();}'でなければなりません。 (直ちに問題になるのではなく、とにかく修正してください。) –
Andrewに感謝します。 (上記のスニペットには現在例外はありません)。 – tsugua