简体   繁体   English

Java Http Server-如何读取客户端发送的服务器上的xml文件

[英]Java Http Server- How to read xml file on server which is sent from client

I have created HTTP server in Java, and tested posting plain string and received response successfully, but I don't know how to read the file on Server-Side which i posted from client side, I tried BuffuredReader and InputStream code but the browser keeps on loading my page and shows nothing. 我已经用Java创建了HTTP服务器,并测试了发布纯字符串并成功接收到响应,但是我不知道如何读取我从客户端发布的服务器端文件,我尝试了BuffuredReader和InputStream代码,但浏览器保持在加载我的页面时,什么也没显示。

Server Side Code : 服务器端代码:

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();

    } 
 }

} }

Client Side Code : 客户端代码:

        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();

Here is my code to read the xml file sent from client to server. 这是我的代码,用于读取从客户端发送到服务器的xml文件。

static class MyHandler implements HttpHandler {
    @Override
    public void handle(HttpExchange t) throws IOException {

        InputStream xml = t.getRequestBody();

        final char[] buffer = new char[1024];
        final StringBuilder out = new StringBuilder();
        try (Reader in = new InputStreamReader(xml, "UTF-8")) {
        for (;;) {
            int rsz = in.read(buffer, 0, buffer.length);
            if (rsz < 0)
                break;
            out.append(buffer, 0, rsz);
        }
    }
    catch (UnsupportedEncodingException ex) {
        /* ... */
    }
    catch (IOException ex) {
        /* ... */
    } 
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 NodeJs:如何保持节点服务器 - &gt; Java客户端连接打开 - NodeJs: how to keep Node server-> Java client connection open 错误打开客户端服务器-Java - Error Opening Client Server- Java 如何在JAVA中读取/导出从SQL Server输出的XML文件 - How to read/export XML file which is output from SQL server in JAVA 如何处理从Java客户端上传服务器端HTTP文件 - How to handle Server side HTTP file upload from Java client 多线程服务器-如何正确处理客户端和服务器断开连接 - Multithreaded server- how to properly handle both client and server disconnect 消息未从服务器发送到单个服务器中的客户端-Java中的多个客户端 - message is not sent from server to client in single server - multiple client in java 如何在Java的简单HTTP Web服务器中从客户端读取输入? - How can read input from a Client in a simple HTTP Web Server in Java? 如何将XML文件另存为Java中SQL Server输出的.xml? - How to save XML file as .xml which is output from SQL Server in Java? 使用CXF从Java消耗Web服务会导致com.sun.xml.ws.client.ClientTransportException:服务器发送了HTTP状态代码200:确定 - Consuming webservice from java using CXF results in com.sun.xml.ws.client.ClientTransportException: The server sent HTTP status code 200: OK 仅当客户端套接字已为服务器套接字发送了某些内容时,才从客户端套接字读取信息 - How to read from Client socket only when Client socket has sent something for Server Socket
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM