如何使用c#从java Web服务读取多部分数据响应 [英] how to read multi part data response from java web service using c#

查看:86
本文介绍了如何使用c#从java Web服务读取多部分数据响应的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述





我有一个用java语言开发的网络服务。



我我发送标题参数,如用户名,密码。



我发送一个参数对象。使用http请求我成功连接到该网站



service.the服务正在返回多部分对象。如何阅读多部分对象响应



in c#.net





这里的代码如下:



请帮帮我。



提前致谢



Hi,

I have one web service which is developed in java language.

I am sending the header parameters like username , Password.

I am sending one more parameter object. With http request i am successfully connecting to that web

service.the service is returning the multi part object.How to read the multi part object response

in c#.net


here the below is the code:

please help me.

Thanks in advance

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace sendresponse
{
    public partial class WebForm6 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

 protected void Button2_Click(object sender, EventArgs e)
        {
            try
            {

                HttpWebResponse resp;

                string targetUrl;

                object jsonObject = "{'property':[{'docId':'{BB323ED3-6BE3-41D7-A879-874A8B02FB23}','pageset':'[6]'}," +
                                                    "{'docId':'{948B7817-10BC-4DE9-8ACB-F105A82F05E6}','pageset':'[5]'}," +
                                                    "{'docId':'{D1AEC407-402E-4293-BA60-F15ADF594B5F}','pageset':'[2-3]'}," +
                                                    "{'docId':'{8FB0DB6E-7473-4202-8E6E-DB67C5430E84}','pageset':'[2,5,7]'}]}";
                 targetUrl = @"http://172.16.10.46:9088/DavitaDMSModified/rest/virtualdocument?ObjectStoreName=DavitaOS&Filter=" + jsonObject.ToString() + "&OutputFormat=PDF";


                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(targetUrl);
                request.Headers.Add("UserName", "p8admin");
                request.Headers.Add("Password", "mits123$");

                Response.Write("Connecting to URL: " + targetUrl + "<br>");
                // read input XML from file 
                StringBuilder sb = new StringBuilder();

                //String inputXml;

                //using (StreamReader inputQueryReader = new StreamReader(@"C:\Users\Pramod\Desktop\PageID.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("p8admin,mits123$" + sb.ToString());



                String postData = sb.ToString();

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



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


                string sAuth = Convert.ToBase64String(AuthBytes);

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

                //string username = "p8admin";
                //string passwrod = "mits123$";

                //NetworkCredential cred = new NetworkCredential(username, passwrod);


                //string credentials = String.Format("{0}:{1}", "p8admin", "mits123$");
                byte[] postDataBytes = Encoding.UTF8.GetBytes(postData);

                request.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;

                request.ContentType = "text/plain";


                //request.MediaType = "text/xml";


                //request.Accept = "application/sjson";

                request.Method = "POST";
                request.KeepAlive = true;

                request.ContentLength = postDataBytes.Length;
                ServicePointManager.ServerCertificateValidationCallback = delegate(object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; };

                Stream requestStream = request.GetRequestStream();
                StreamWriter sw = new StreamWriter(requestStream);
                requestStream.Write(postDataBytes, 0, postDataBytes.Length);
                sw.Write(postDataBytes);


                //requestStream.Close();




                // get response and write to console

                resp = (HttpWebResponse)request.GetResponse(); // THROWS AN EXCEPTION RIGHT HERE
                //resp.ContentType = "multipart/form-data";
               
              
                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());

            }
        }
        
    }
}</br></br></br>

推荐答案

);

Response.Write( 连接到URL: + targetUrl + < br>);
// 从文件中读取输入XML
StringBuilder sb = new StringBuilder ();

// < span class =code-comment> String inputXml;

// using(StreamReader inputQueryReader = new StreamReader(@C:\ Users\Pramod\Desktop\PageID.xml))
// {

// sb.Append(inputQueryReader.ReadToEnd());

// }

Response.Write( 输入xml值: + sb.ToString()+ < br>);



// 编码发布数据并设置请求注意:输入xml传递一个名为NETCONNECT_TRANSACTION的参数'



sb.Append( p8admin,mits123
"); Response.Write("Connecting to URL: " + targetUrl + "<br>"); // read input XML from file StringBuilder sb = new StringBuilder(); //String inputXml; //using (StreamReader inputQueryReader = new StreamReader(@"C:\Users\Pramod\Desktop\PageID.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("p8admin,mits123


+ sb.ToString());



String postData = sb.ToString();

Response.Write( postData: + postData);



byte [] AuthBytes = Encoding.ASCII.GetBytes( 用户名:passwrod);


string sAuth = Convert.ToBase64String(AuthBytes);

request.Headers.Add( 授权 Basic + sAuth);

// string username =p8admin;
< span class =code-comment> // string passwrod =mits123
" + sb.ToString()); String postData = sb.ToString(); Response.Write("postData: " + postData); byte[] AuthBytes = Encoding.ASCII.GetBytes("username:passwrod"); string sAuth = Convert.ToBase64String(AuthBytes); request.Headers.Add("Authorization", "Basic " + sAuth); //string username = "p8admin"; //string passwrod = "mits123


;

// NetworkCredential cred = new NetworkCredential(username,passwrod);


// string credentials = String.Format({0}:{1} ,p8admin,mits123
"; //NetworkCredential cred = new NetworkCredential(username, passwrod); //string credentials = String.Format("{0}:{1}", "p8admin", "mits123


这篇关于如何使用c#从java Web服务读取多部分数据响应的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆