您的位置:首页 > 理论基础 > 计算机网络

using C# to post XML to an https service (non-SOAP) RSS

2012-05-07 14:53 483 查看
using System;

using System.Collections;

using System.Configuration;

using System.Data;

using System.Linq;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.HtmlControls;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Xml.Linq;

using System.Net;

using System.Xml;

using System.Text;

using System.IO;

public partial class PostXml : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

    }

    protected void Button1_Click(object sender, EventArgs e)

    {

        try

        {

            HttpWebResponse resp;

            string targetUrl;

            targetUrl = "https://stg1-ss1.experian.com/netconnect2_0Demo/servlets/NetConnectServlet";

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(targetUrl);

            Response.Write("Connecting to URL: " + targetUrl + "<br>");

            // read input XML from file

            StringBuilder sb = new StringBuilder();

            //String inputXml;

            using (StreamReader inputQueryReader = new StreamReader("C:\\1.xml"))

            {

                sb.Append(inputQueryReader.ReadToEnd());

            }

            Response.Write("input xml value:" + sb.ToString() + "<br>");

            // encode post data and set up the request NOTE: input xml is passed a a parameter named NETCONNECT_TRANSACTION'

            sb.Append("&NETCONNECT_TRANSACTION=" + sb.ToString());

            String postData = sb.ToString();

            Response.Write("postData: " + postData);

            byte[] AuthBytes = Encoding.ASCII.GetBytes("aa:aa");

            string sAuth = Convert.ToBase64String(AuthBytes);

            request.Headers.Add("Authorization", "Basic " + sAuth);

            NetworkCredential cred = new NetworkCredential("aa", "aa");

            byte[] postDataBytes = Encoding.UTF8.GetBytes(postData);

            request.Credentials = cred;

            request.Method = "POST";

            request.ContentType = "application/x-www-form-urlencoded";

            request.ContentLength = postDataBytes.Length;

            Stream requestStream = request.GetRequestStream();

            requestStream.Write(postDataBytes, 0, postDataBytes.Length);

            requestStream.Close();

            // get response and write to console

            resp = (HttpWebResponse)request.GetResponse();   // THROWS AN EXCEPTION RIGHT HERE

            Response.Write("Got a response from the Target URL, response:<br>");

            StreamReader responseReader = new StreamReader(resp.GetResponseStream(), Encoding.UTF8);

            Response.Write(responseReader.ReadToEnd());

            resp.Close();

        }

        catch (Exception ex)

        {

            Response.Write(ex.ToString());

        }

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐