0
JavaでHTTPサーバーを作成し、プレーンストリングを正常に送信して応答を受信しましたが、サーバー上のファイルを読み取る方法がわかりません - 私はクライアント側から投稿した、私はBufferedReaderとInputStreamのコードを試みたが、ブラウザは私のページをロードし続け、何も表示されません。Java Httpサーバー - クライアントから送信されたサーバー上のxmlファイルを読み取る方法
サーバーサイドコード:
public class Server {
public static void main(String[] args) throws Exception {
HttpServer server = HttpServer.create(new InetSocketAddress(8080), 0);
server.createContext("/ahmer", new MyHandler());
server.setExecutor(null);
server.start();
}
static class MyHandler implements HttpHandler {
@Override
public void handle(HttpExchange t) throws IOException {
String response = "Success";
t.sendResponseHeaders(200, response.length());
OutputStream os = t.getResponseBody();
os.write(response.getBytes());
os.close();
}
}
}
クライアント側コード:
URL url = new URL("http://localhost:8080/ahmer");
HttpURLConnection con = (HttpURLConnection)url.openConnection();
String document = "C:\\ahmer.xml";
FileReader fr = new FileReader(document);
// specify that we will send output and accept input
con.setDoInput(true);
con.setDoOutput(true);
char[] buffer = new char[1024*10];
int b_read = 0;
con.setRequestProperty ("Content-Type", "text/xml");
con.setRequestProperty("SOAPAction","MSMQMessage");
con.setRequestProperty("Proxy-Accept","NonInteractiveClient");
con.setRequestProperty("CONNECTION", "close");
con.setRequestProperty("CACHE-CONTROL", "no-cache");
con.setRequestProperty("USER-AGENT", "OpenTV-iAdsResponder_1_0");
OutputStreamWriter writer = new OutputStreamWriter(con.getOutputStream());
while ((b_read = fr.read(buffer)) != -1) {
writer.write(buffer, 0, b_read);
}
writer.flush();
writer.close();
fr.close();
int i = con.getResponseCode();
rs=String.format("Response code: %d",i);
HttpClient client = new DefaultHttpClient();
HttpGet requests = new HttpGet("http://localhost:8080/ahmer");
HttpResponse rss = client.execute(requests);
String responseAsString = EntityUtils.toString(rss.getEntity());
con.disconnect();