You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
215 lines
7.8 KiB
215 lines
7.8 KiB
3 years ago
|
using System;
|
||
|
using System.Collections.Generic;
|
||
|
using System.Diagnostics;
|
||
|
using System.IO;
|
||
|
using System.Linq;
|
||
|
using System.Net;
|
||
|
using System.Text;
|
||
|
|
||
|
namespace ImageClient.Common
|
||
|
{
|
||
|
public class HttpHelper
|
||
|
{
|
||
|
public bool UploadImage(string fullName) {
|
||
|
|
||
|
return true;
|
||
|
}
|
||
|
#region 获取指定WEB页面
|
||
|
/// GET方法获取页面
|
||
|
/// 函数名:GetWebUrl
|
||
|
/// 功能描述:WebClient 获取页面
|
||
|
/// 处理流程:
|
||
|
/// 算法描述:
|
||
|
/// 作 者: lxc
|
||
|
/// 日 期: 2012-10-09
|
||
|
/// 修 改:
|
||
|
/// 日 期:
|
||
|
/// 版 本:
|
||
|
public static string GetWebUrl(string strurl)
|
||
|
{
|
||
|
WebClient webClient = new WebClient();
|
||
|
try
|
||
|
{
|
||
|
webClient.Credentials = CredentialCache.DefaultCredentials;
|
||
|
Byte[] pageData = webClient.DownloadData(strurl);
|
||
|
//string pageHtml = Encoding.UTF8.GetString(pageData);
|
||
|
string pageHtml = Encoding.Default.GetString(pageData);
|
||
|
return pageHtml;
|
||
|
|
||
|
}
|
||
|
catch (WebException webEx)
|
||
|
{
|
||
|
return "error_GetWebUrl:" + webEx.ToString();
|
||
|
}
|
||
|
finally
|
||
|
{
|
||
|
webClient = null;
|
||
|
}
|
||
|
|
||
|
|
||
|
}
|
||
|
#endregion
|
||
|
#region PostUrl(String url, String paramList)
|
||
|
/// <summary>
|
||
|
/// POST方法获取页面
|
||
|
/// </summary>
|
||
|
/// <param name="url"></param>
|
||
|
/// <param name="paramList">格式: a=xxx&b=xxx&c=xxx</param>
|
||
|
/// <returns></returns>
|
||
|
public static string PostUrl(String url, String paramList)
|
||
|
{
|
||
|
HttpWebResponse res = null;
|
||
|
string strResult = "";
|
||
|
try
|
||
|
{
|
||
|
|
||
|
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
|
||
|
req.Timeout = 3000;
|
||
|
req.Method = "POST";
|
||
|
req.KeepAlive = true;
|
||
|
//req.ContentType = "application/josn";
|
||
|
req.ContentType = "application/x-www-form-urlencoded";
|
||
|
//req.UserAgent="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322)";
|
||
|
CookieContainer cookieCon = new CookieContainer();
|
||
|
req.CookieContainer = cookieCon;
|
||
|
StringBuilder UrlEncoded = new StringBuilder();
|
||
|
Char[] reserved = { '?', '=', '&' };
|
||
|
byte[] SomeBytes = null;
|
||
|
if (paramList != null)
|
||
|
{
|
||
|
int i = 0, j;
|
||
|
while (i < paramList.Length)
|
||
|
{
|
||
|
j = paramList.IndexOfAny(reserved, i);
|
||
|
if (j == -1)
|
||
|
{
|
||
|
// UrlEncoded.Append(HttpUtility.UrlEncode(paramList.Substring(i, paramList.Length-i)));
|
||
|
UrlEncoded.Append((paramList.Substring(i, paramList.Length - i)));
|
||
|
break;
|
||
|
}
|
||
|
// UrlEncoded.Append(HttpUtility.UrlEncode(paramList.Substring(i, j-i)));
|
||
|
UrlEncoded.Append((paramList.Substring(i, j - i)));
|
||
|
UrlEncoded.Append(paramList.Substring(j, 1));
|
||
|
i = j + 1;
|
||
|
}
|
||
|
SomeBytes = Encoding.UTF8.GetBytes(UrlEncoded.ToString());
|
||
|
req.ContentLength = SomeBytes.Length;
|
||
|
Stream newStream = req.GetRequestStream();
|
||
|
newStream.Write(SomeBytes, 0, SomeBytes.Length);
|
||
|
newStream.Close();
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
req.ContentLength = 0;
|
||
|
}
|
||
|
res = (HttpWebResponse)req.GetResponse();
|
||
|
Stream ReceiveStream = res.GetResponseStream();
|
||
|
// Encoding encode = System.Text.Encoding.Default;//GetEncoding("utf-8");
|
||
|
string encodeheader = res.ContentType;
|
||
|
string encodestr = System.Text.Encoding.UTF8.HeaderName;
|
||
|
if ((encodeheader.IndexOf("charset=") >= 0) && (encodeheader.IndexOf("charset=GBK") == -1) && (encodeheader.IndexOf("charset=gbk") == -1))
|
||
|
{
|
||
|
int i = encodeheader.IndexOf("charset=");
|
||
|
encodestr = encodeheader.Substring(i + 8);
|
||
|
}
|
||
|
Encoding encode = System.Text.Encoding.GetEncoding(encodestr);//GetEncoding("utf-8");
|
||
|
|
||
|
StreamReader sr = new StreamReader(ReceiveStream, encode);
|
||
|
Char[] read = new Char[256];
|
||
|
int count = sr.Read(read, 0, 256);
|
||
|
while (count > 0)
|
||
|
{
|
||
|
String str = new String(read, 0, count);
|
||
|
strResult += str;
|
||
|
count = sr.Read(read, 0, 256);
|
||
|
}
|
||
|
}
|
||
|
catch (Exception e)
|
||
|
{
|
||
|
strResult = e.ToString();
|
||
|
}
|
||
|
finally
|
||
|
{
|
||
|
if (res != null)
|
||
|
{
|
||
|
res.Close();
|
||
|
}
|
||
|
}
|
||
|
return strResult;
|
||
|
}
|
||
|
|
||
|
#endregion
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
/// <summary>
|
||
|
/// WebClient上传文件至服务器
|
||
|
/// </summary>
|
||
|
/// <param name="localFilePath">文件名,全路径格式</param>
|
||
|
/// <param name="url">服务器文件夹路径</param>
|
||
|
/// <returns></returns>
|
||
|
public bool UpLoadFile(string localFilePath, string url)
|
||
|
{
|
||
|
|
||
|
|
||
|
string uriString;
|
||
|
// 得到文件名,文件扩展名字,服务器路径
|
||
|
uriString = url + localFilePath.Substring(localFilePath.LastIndexOf("\\") + 1);
|
||
|
|
||
|
// 创建WebClient实例
|
||
|
WebClient myWebClient = new WebClient();
|
||
|
myWebClient.Credentials = CredentialCache.DefaultCredentials;
|
||
|
myWebClient.Headers.Add("Content-Type", "multipart/form-data;charset=utf-8;boundary=.png");
|
||
|
|
||
|
// 要上传的文件
|
||
|
FileStream fs = new FileStream(localFilePath, FileMode.Open, FileAccess.Read);
|
||
|
BinaryReader r = new BinaryReader(fs);
|
||
|
try
|
||
|
{
|
||
|
//使用UploadFile方法可以用下面的格式
|
||
|
byte[] postArray = r.ReadBytes((int)fs.Length);
|
||
|
Stream postStream = myWebClient.OpenWrite(url, "POST");
|
||
|
if (postStream.CanWrite)
|
||
|
{
|
||
|
postStream.Write(postArray, 0, postArray.Length);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
// MessageBox.Show("文件目前不可写!");
|
||
|
}
|
||
|
postStream.Close();
|
||
|
}
|
||
|
catch
|
||
|
{
|
||
|
//MessageBox.Show("文件上传失败,请稍候重试~");
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
return true;
|
||
|
}
|
||
|
public bool UpLoadFileExe(string url, string fileanme) {
|
||
|
string exename = "html.exe";
|
||
|
// @"-url http://127.0.0.1:9900/upload/k001/zf1x -filename C:/GOPATH/src/eassoft/imageserver/html/广东美的集团有限公司-公章1.bmp";
|
||
|
string formatcmd = "-url \"{0}\" -filename \"{1}\"";
|
||
|
string cmd = string.Format(formatcmd,url,fileanme);
|
||
|
|
||
|
|
||
|
Process myprocess = new Process();
|
||
|
ProcessStartInfo startInfo = new ProcessStartInfo(exename, cmd);
|
||
|
myprocess.StartInfo = startInfo;
|
||
|
|
||
|
//通过以下参数可以控制exe的启动方式,具体参照 myprocess.StartInfo.下面的参数,如以无界面方式启动exe等
|
||
|
myprocess.StartInfo.UseShellExecute = false;
|
||
|
myprocess.StartInfo.CreateNoWindow = true;
|
||
|
myprocess.Start();
|
||
|
myprocess.WaitForExit(30000);
|
||
|
myprocess.Close();
|
||
|
return true;
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|