如何使用c#从java Web服务读取多部分数据响应 [英] how to read multi part data response from java web service using c#
本文介绍了如何使用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屋!
查看全文