如何使程序服务器发送XML?

Zouzanda.

新成员
加入
3月9日,2021年
消息
4
编程经验
1-3
HTTP/1.1 200 OK\r\n:
Transmission Control Protocol, Src Port: 8080, Dst Port: 39628, Seq: 1, Ack: 879, Len: 478
Hypertext Transfer Protocol
    HTTP/1.1 200 OK\r\n
        [Expert Info (Chat/Sequence): HTTP/1.1 200 OK\r\n]
            [HTTP/1.1 200 OK\r\n]
            [Severity level: Chat]
            [Group: Sequence]
        Response Version: HTTP/1.1
        Status Code: 200
        [Status Code Description: OK]
        Response Phrase: OK
    Content-Type: text/xml; charset=utf-8\r\n
    Content-Length: 357\r\n
        [Content length: 357]
    Connection: close\r\n
    Server: Jetty(6.1.26)\r\n
    \r\n
    [HTTP response 1/1]
    [Time since request: 0.129351000 seconds]
    [Request in frame: 96]
    [Request URI: http://xxxxxxxxxx/WS_STG/WS_STG.asmx]
    File Data: 357 bytes
eXtensible Markup Language
    <soapenv:Envelope
        xmlns:soapenv="http://xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/"
        xmlns:ws="http://xxxxxxxxxxxxxxxxxxxxxxxxxx">
        <soapenv:Header/>
        <soapenv:Body>
            <ws:UpdateRequestStatusResponse>
                <ws:UpdateRequestStatusResult>
                    true
                    </ws:UpdateRequestStatusResult>
                </ws:UpdateRequestStatusResponse>
            </soapenv:Body>
        </soapenv:Envelope>
 

Zouzanda.

新成员
加入
3月9日,2021年
消息
4
编程经验
1-3
C#:
private void button1_Click(object sender, EventArgs e)
        {

            System.Net.WebRequest req = null;
            System.Net.WebResponse rsp = null;
            try
            {
                string uri = txtURI.Text;
                req = System.Net.WebRequest.Create(uri);
                req.Method = "POST";

                req.ContentType = "text/xml; charset=utf-8";

                System.IO.StreamWriter writer =
            new System.IO.StreamWriter(req.GetRequestStream());
                writer.WriteLine(txtXMLData.Text);
                writer.Close();
                rsp = req.GetResponse();
            }
            catch
            {
                throw;
            }
            finally
            {
                if (req != null) req.GetRequestStream().Close();
                if (rsp != null) rsp.GetResponseStream().Close();
            }
        }





我已经尝试过这个代码,但它没有给我相同的结果

先谢谢您的帮助
 

跳伞运动员

工作人员
加入
2019年4月6日
消息
2,791
地点
切萨皮克,va.
编程经验
10+
你需要更具描述性的"但它并没有给我相同的结果"。你得到了什么结果?你期望看到什么结果?
 

Zouzanda.

新成员
加入
3月9日,2021年
消息
4
编程经验
1-3
这是我得到的结果:
Transmission Control Protocol, [2 Reassembled TCP Segments (518 bytes): #59(152), #73(366)]
Hypertext Transfer Protocol
    POST /WS_STG/WS_STG.asmx HTTP/1.1\r\n 
    Content-Type: text/xml\r\n
    Host: xxxxxxxxxxxxxxx\r\n
    Content-Length: 366\r\n
    Expect: 100-continue\r\n
    Connection: Keep-Alive\r\n
    \r\n
    [Full request URI: http://xxxxxxxxxxxxxxxxxxxxxxxxxxx]
    [HTTP request 1/1]
    [Response in frame: 79]
    File Data: 366 bytes
eXtensible Markup Language
    <soapenv:Envelope
        xmlns:soapenv="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”
        xmlns:ws="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx">
        <soapenv:Header/>
        <soapenv:Body>
            <ws:UpdateRequestStatusResponse>
                <ws:UpdateRequestStatusResult>
                    true
                    </ws:UpdateRequestStatusResult>
                </ws:UpdateRequestStatusResponse>
            </soapenv:Body>
        </soapenv:Envelope>
 

跳伞运动员

工作人员
加入
2019年4月6日
消息
2,791
地点
切萨皮克,va.
编程经验
10+
也许我只是瞎了,但对我来说,肥皂响应看起来也一样。你回来的那个反应是什么是什么?
 

32x0LF

新成员
加入
3月25日,2021年
消息
2
编程经验
1-3
你试过补充这个吗?
C#:
 rsp = req.GetResponse();

C#:
string result =string.Empty;
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
    result = streamReader.ReadToEnd();
}
这取决于你如何通过结果
 

跳伞运动员

工作人员
加入
2019年4月6日
消息
2,791
地点
切萨皮克,va.
编程经验
10+
关闭,但不是完全。

问题是帖子#1中的跟踪显示了响应的迹象。 POST#4中的跟踪显示了请求的跟踪,该迹象由邮政编码#2的代码备份。如果OP想要两个痕迹相似,他应该做一个响应,而不是请求。但问题将是将提起对他的程序的请求,以便他可以将适当的响应写入相同的TCP / IP流?
 
最佳 底部