У меня нет опыта работы с Java, и я только начинаю экспериментировать с обработкой.
Я пытаюсь написать сценарий при обработке, который будет отправлять 512-байтовый массив с помощью команды http post на веб-сервер.Это все работает хорошо (благодаря коду, который я выкопал в интернете!), Но у меня возникли некоторые проблемы с кодировками.Я создаю массив символов, заполненный 0xFF.Это выдает как 512 символов «ÿ» в окне вывода, как и должно быть.Проблема в том, что HTTPScoop показывает шестнадцатеричный столб в виде серии символов 0xD8 или символа «Ø».Я не уверен, почему консоль печатает один символ, а поток вывода, кажется, отправляет другой.
Код ниже:
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) {
}
}
Любая помощь будет высоко ценится!