API のサンプル Java コードを Python スクリプトで動作するように調整しようとしています。Javaコードが機能し、Pythonでソケット接続を実行できることは知っていますが、Pythonで文字列を変換してxmlリクエストを正常に送信できるようにする方法がわかりません。構造体を使用する必要があると確信していますが、先週はまだそれを理解できていません。
また、最初にリクエストの長さを送信してからリクエストを送信する必要があることはかなり確信していますが、サーバープログラムで成功したリクエストを表示するために何も取得できませんでした。
public void connect(String host, int port) {
try {
setServerSocket(new Socket(host, port));
setOutputStream(new DataOutputStream(getServerSocket().getOutputStream()));
setInputStream(new DataInputStream(getServerSocket().getInputStream()));
System.out.println("Connection established.");
} catch (IOException e) {
System.out.println("Unable to connect to the server.");
System.exit(1);
}
}
public void disconnect() {
try {
getOutputStream().close();
getInputStream().close();
getServerSocket().close();
} catch (IOException e) {
// do nothing, the program is closing
}
}
/**
* Sends the xml request to the server to be processed.
* @param xml the request to send to the server
* @return the response from the server
*/
public String sendRequest(String xml) {
byte[] bytes = xml.getBytes();
int size = bytes.length;
try {
getOutputStream().writeInt(size);
getOutputStream().write(bytes);
getOutputStream().flush();
System.out.println("Request sent.");
return listenMode();
} catch (IOException e) {
System.out.println("The connection to the server was lost.");
return null;
}
}