如何将记录从我们的应用程序更新到另一个应用程序! [英] How to update records from our application to another appication!
本文介绍了如何将记录从我们的应用程序更新到另一个应用程序!的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
任何人都可以在这方面帮助我,例如我想通过传递有关值来访问一个站点到另一个站点,并且我尝试了下面显示如下的代码
使用系统;
使用 System.Web; // HttpUtility类
使用使用System.Threading;
使用 System.Text; // 编码类
使用 System.Net; // HttpWebRequest类
使用 System.IO; // 用于StreamReader类
命名空间 sampleexe
{
class Class1
{
[STAThread]
静态 无效 Main(字符串 []参数)
{
字符串 url = " ;
字符串 viewstate = InitialViewState(url);
viewstate = HttpUtility.UrlEncode(viewstate);
字符串 data = " + viewstate;
字节 [] buffer = Encoding.UTF8.GetBytes(data);
字符串 proxy = 空;
WebRequest req = WebRequest.Create(url);
req.Method = " ;
req.ContentType = " ;
req.ContentLength = buffer.Length;
req.Proxy = 新 WebProxy(代理,真); // 忽略本地地址
流reqst = req.GetRequestStream(); // 将表单数据添加到请求流
reqst.Write(buffer, 0 ,buffer.Length);
reqst.Flush();
reqst.Close();
Console.WriteLine(" 尝试
{
req.Credentials = CredentialCache.DefaultCredentials;
// HttpWebResponse response =(HttpWebResponse)req.GetResponse();
HttpWebResponse res =(HttpWebResponse)req.GetResponse(); // 发送请求,获取响应
Console.WriteLine(" );
流resst = res.GetResponseStream(); // 显示HTTP响应
StreamReader sr = 新 StreamReader(resst);
Console.WriteLine(sr.ReadToEnd());
sr.Close();
resst.Close();
}
捕获(前System.Net.WebException)
{
字符串 responseFromServer = ex.Message.ToString()+ " ;
如果(例如,响应!= 空)
{
使用(WebResponse响应= ex.Response)
{
流数据11 = response.GetResponseStream();
使用(StreamReader reader = 新 StreamReader(data11))
{
responseFromServer + = reader.ReadToEnd();
}
}
}
Console.WriteLine(responseFromServer);
}
Console.WriteLine(" );
Console.ReadLine();
} // Main()
静态 字符串 InitialViewState(字符串 url)
{
WebClient wc = 新 WebClient();
流st = wc.OpenRead(url);
StreamReader sr = 新 StreamReader(st);
字符串行;
同时((line = sr.ReadLine())!= 空)
{
如果(line.IndexOf(" )!= -1)// 找到一行
{
sr.Close();
st.Close();
int startIndex = line.IndexOf(" )+ 7 ;
int endIndex = line.IndexOf(" ,startIndex);
int count = endIndex-startIndex;
返回行.Substring(startIndex,count);
}
}
sr.Close();
st.Close();
返回 " ;
} // InitialViewState()
} // Class1
} // ns PostToASPdotNET
这里我得到的错误是远程服务器返回了一个错误:(500)内部服务器Error.System.Net.HttpWebRequest.GetResponse()"
解决方案
VIEWSTATE已加密,可以防止任何恶意操作,并且在任何其他页面或网站上均无效.
Hi,
Can any one help me on this like i wants to access one site to another by passing regarding values and also i tried the below code that shows below
using System;
using System.Web; // for HttpUtility class
using System.Threading;
using System.Text; // for Encoding class
using System.Net; // for HttpWebRequest class
using System.IO; // for StreamReader class
namespace sampleexe
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
string url = "http://localhost:3974/Default.aspx";
string viewstate = InitialViewState(url);
viewstate = HttpUtility.UrlEncode(viewstate);
string data = "TextBox1=red&TextBox2=empty&Button1=clicked&__VIEWSTATE="+viewstate;
byte[] buffer = Encoding.UTF8.GetBytes(data);
string proxy = null;
WebRequest req = WebRequest.Create(url);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.ContentLength = buffer.Length;
req.Proxy = new WebProxy(proxy, true); // ignore for local addresses
Stream reqst = req.GetRequestStream(); // add form data to request stream
reqst.Write(buffer, 0, buffer.Length);
reqst.Flush();
reqst.Close();
Console.WriteLine("\nPosting 'red' to " + url);
try
{
req.Credentials = CredentialCache.DefaultCredentials;
// HttpWebResponse response = (HttpWebResponse)req.GetResponse();
HttpWebResponse res = (HttpWebResponse)req.GetResponse(); // send request, get response
Console.WriteLine("\nResponse stream is: \n");
Stream resst = res.GetResponseStream(); // display HTTP response
StreamReader sr = new StreamReader(resst);
Console.WriteLine(sr.ReadToEnd());
sr.Close();
resst.Close();
}
catch (System.Net.WebException ex)
{
String responseFromServer = ex.Message.ToString() + " ";
if (ex.Response != null)
{
using (WebResponse response = ex.Response)
{
Stream data11 = response.GetResponseStream();
using (StreamReader reader = new StreamReader(data11))
{
responseFromServer += reader.ReadToEnd();
}
}
}
Console.WriteLine(responseFromServer);
}
Console.WriteLine("\nDone");
Console.ReadLine();
} // Main()
static string InitialViewState(string url)
{
WebClient wc = new WebClient();
Stream st = wc.OpenRead(url);
StreamReader sr = new StreamReader(st);
string line;
while ((line = sr.ReadLine()) != null)
{
if (line.IndexOf("__VIEWSTATE") != -1) // found line
{
sr.Close();
st.Close();
int startIndex = line.IndexOf("value=") + 7;
int endIndex = line.IndexOf("\"", startIndex);
int count = endIndex - startIndex;
return line.Substring(startIndex, count);
}
}
sr.Close();
st.Close();
return "not found";
} // InitialViewState()
} // Class1
} // ns PostToASPdotNET
here the error i''m getting is "The remote server returned an error: (500) Internal Server Error.System.Net.HttpWebRequest.GetResponse()"
Please help me on this to resolve!
解决方案
VIEWSTATE is encrypted to prevent any malicious manipulation and wouldn''t be valid on any other page or site.
这篇关于如何将记录从我们的应用程序更新到另一个应用程序!的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文