c# post get
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Management;
using System.Drawing;
using System.Configuration;
using AForge;
using AForge.Video;
using AForge.Video.DirectShow;
using AForge.Imaging;
using AForge.Imaging.Filters;
using ZXing;
using System.IO;
using System.Net;
namespace Default
{
class Common
{
/// <summary>
/// 实现Base64加密解密
/// 作者:kaschie
/// 时间:2017
/// </summary>
public sealed class Base64
{
/// <summary>
/// Base64加密
/// </summary>
/// <param name="codeName">加密采用的编码方式</param>
/// <param name="source">待加密的明文</param>
/// <returns></returns>
public static string EncodeBase64(Encoding encode, string source)
{
byte[] bytes = encode.GetBytes(source);
string result = string.Empty;
try
{
result = Convert.ToBase64String(bytes);
}
catch
{
result = source;
}
return result;
}
/// <summary>
/// Base64加密,采用utf8编码方式加密
/// </summary>
/// <param name="source">待加密的明文</param>
/// <returns>加密后的字符串</returns>
public static string EncodeBase64(string source)
{
return EncodeBase64(Encoding.UTF8, source);
}
/// <summary>
/// Base64解密
/// </summary>
/// <param name="codeName">解密采用的编码方式,注意和加密时采用的方式一致</param>
/// <param name="result">待解密的密文</param>
/// <returns>解密后的字符串</returns>
public static string DecodeBase64(Encoding encode, string result)
{
string decode = "";
byte[] bytes = Convert.FromBase64String(result);
try
{
decode = encode.GetString(bytes);
}
catch
{
decode = result;
}
return decode;
}
/// <summary>
/// Base64解密,采用utf8编码方式解密
/// </summary>
/// <param name="result">待解密的密文</param>
/// <returns>解密后的字符串</returns>
public static string DecodeBase64(string result)
{
return DecodeBase64(Encoding.UTF8, result);
}
}
public sealed class PostOrGet
{
/// <summary>
/// 指定Post地址使用Get 方式获取全部字符串
/// </summary>
/// <param name="url">请求后台地址</param>
/// <param name="content">Post提交数据内容(utf-8编码的)</param>
/// <returns></returns>
public static string Post(string url, string content)
{
string result = "";
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
#region 添加Post 参数
byte[] data = Encoding.UTF8.GetBytes(content);
req.ContentLength = data.Length;
using (Stream reqStream = req.GetRequestStream())
{
reqStream.Write(data, , data.Length);
reqStream.Close();
}
#endregion
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
Stream stream = resp.GetResponseStream();
//获取响应内容
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{
result = reader.ReadToEnd();
}
return result;
}
public static string HttpPostData(string url, string fileKeyName, string content,byte[] buffer)
{
string responseContent;
var memStream = new MemoryStream();
var webRequest = (HttpWebRequest)WebRequest.Create(url);
// 边界符
var boundary = "---------------" + DateTime.Now.Ticks.ToString("x");
// 边界符
var beginBoundary = Encoding.ASCII.GetBytes("--" + boundary + "\r\n");
// var fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read);
// 最后的结束符
var endBoundary = Encoding.ASCII.GetBytes("--" + boundary + "--\r\n");
// 设置属性
webRequest.Method = "POST";
//webRequest.Timeout = timeOut;
webRequest.ContentType = "multipart/form-data; boundary=" + boundary;
// 写入文件
const string filePartHeader =
"Content-Disposition: form-data; name=\"{0}\"; filename=\"{1}\"\r\n" +
"Content-Type: application/octet-stream\r\n\r\n";
var header = string.Format(filePartHeader, fileKeyName, "zz.jpg");
var headerbytes = Encoding.UTF8.GetBytes(header);
memStream.Write(beginBoundary, , beginBoundary.Length);
memStream.Write(headerbytes, , headerbytes.Length);
//var buffer = new byte[1024];
int bytesRead; // =0
//while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0)
//{
memStream.Write(buffer, , buffer.Length);
// }
// 写入字符串的Key
var stringKeyHeader = "\r\n--" + boundary +
"\r\nContent-Disposition: form-data; name=\"{0}\"" +
"\r\n\r\n{1}\r\n";
byte[] data = Encoding.UTF8.GetBytes(content);
memStream.Write(data, , data.Length);
// 写入最后的结束边界符
memStream.Write(endBoundary, , endBoundary.Length);
webRequest.ContentLength = memStream.Length;
var requestStream = webRequest.GetRequestStream();
memStream.Position = ;
var tempBuffer = new byte[memStream.Length];
memStream.Read(tempBuffer, , tempBuffer.Length);
memStream.Close();
requestStream.Write(tempBuffer, , tempBuffer.Length);
requestStream.Close();
var httpWebResponse = (HttpWebResponse)webRequest.GetResponse();
using (var httpStreamReader = new StreamReader(httpWebResponse.GetResponseStream(),
Encoding.GetEncoding("utf-8")))
{
responseContent = httpStreamReader.ReadToEnd();
}
//fileStream.Close();
httpWebResponse.Close();
webRequest.Abort();
return responseContent;
}
/// <summary>
/// 发起httpPost 请求,可以上传文件
/// </summary>
/// <param name="url">请求的地址</param>
/// <param name="files">文件</param>
/// <param name="input">表单数据</param>
/// <param name="endoding">编码</param>
/// <returns></returns>
public static string PostResponse(string url, byte[] files, Dictionary<string, string> input, Encoding endoding)
{
string message = string.Empty;
string boundary = "----------------------------" + DateTime.Now.Ticks.ToString("x");
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.ContentType = "multipart/form-data; boundary=" + boundary;
request.Method = "POST";
request.KeepAlive = true;
//request.Credentials = CredentialCache.DefaultCredentials;
request.Expect = "";
MemoryStream stream = new MemoryStream();
byte[] line = Encoding.ASCII.GetBytes("--" + boundary + "\r\n");
byte[] enterER = Encoding.ASCII.GetBytes("\r\n");
////提交文件
if (files != null)
{
string fformat = "Content-Disposition:form-data; name=\"{0}\";filename=\"{1}\"\r\nContent-Type:{2}\r\n\r\n";
//foreach (UpLoadFile file in files)
//{
stream.Write(line, , line.Length); //项目分隔符
string s = string.Format(fformat, "fname", "test.jpg", "application/x-bmp");
byte[] data = Encoding.UTF8.GetBytes(s);
stream.Write(data, , data.Length);
stream.Write(files, , files.Length);
stream.Write(enterER, , enterER.Length); //添加\r\n
///}
}
//提交文本字段
if (input != null)
{
string format = "--" + boundary + "\r\nContent-Disposition:form-data;name=\"{0}\"\r\n\r\n{1}\r\n"; //自带项目分隔符
foreach (string key in input.Keys)
{
string s = string.Format(format, key, input[key]);
byte[] data = Encoding.UTF8.GetBytes(s);
stream.Write(data, , data.Length);
}
}
byte[] foot_data = Encoding.UTF8.GetBytes("--" + boundary + "--\r\n"); //项目最后的分隔符字符串需要带上--
stream.Write(foot_data, , foot_data.Length);
request.ContentLength = stream.Length;
Stream requestStream = request.GetRequestStream(); //写入请求数据
stream.Position = 0L;
stream.CopyTo(requestStream); //
stream.Close();
requestStream.Close();
try
{
HttpWebResponse response;
try
{
response = (HttpWebResponse)request.GetResponse();
try
{
using (var responseStream = response.GetResponseStream())
using (var mstream = new MemoryStream())
{
responseStream.CopyTo(mstream);
message = endoding.GetString(mstream.ToArray());
return message;
}
}
catch (Exception ex)
{
throw ex;
}
}
catch (WebException ex)
{
//response = (HttpWebResponse)ex.Response;
//if (response.StatusCode == HttpStatusCode.BadRequest)
//{
// using (Stream data = response.GetResponseStream())
// {
// using (StreamReader reader = new StreamReader(data))
// {
// string text = reader.ReadToEnd();
// Console.WriteLine(text);
// }
// }
//}
throw ex;
}
}
catch (Exception ex)
{
return ex.Message;
}
}
//testg
public static void postfile(byte[] fileContentByte)
{
string url = "http://localhost:10673/WebForm1.aspx";
";
";
string fileName = "f.jpg";
//byte[] fileContentByte = new byte[1024]; // 文件内容二进制
#region 将文件转成二进制
//fileContentByte = Common.StringLibrary.BitmapToBytes((Bitmap)this.pictureBox1.Image); // 二进制文件
#endregion
#region 定义请求体中的内容 并转成二进制
string boundary = "ceshi";
string Enter = "\r\n";
string fileContentStr = "--" + boundary + Enter
+ "Content-Type:application/octet-stream" + Enter
+ "Content-Disposition: form-data; name=\"fileContent\"; filename=\"" + fileName + "\"" + Enter + Enter;
string book_item_id = Enter + "--" + boundary + Enter
+ "Content-Disposition: form-data; name=\"book_item_id\"" + Enter + Enter
+ vbook_item_id;
string kechen_id = Enter + "--" + boundary + Enter
+ "Content-Disposition: form-data; name=\"book_item_id\"" + Enter + Enter
+ vkechen_id;
//var modelIdStrByte = Encoding.UTF8.GetBytes(modelIdStr);//modelId所有字符串二进制
var fileContentStrByte = Encoding.UTF8.GetBytes(fileContentStr);//fileContent一些名称等信息的二进制(不包含文件本身)
var book_item_idStrByte = Encoding.UTF8.GetBytes(book_item_id);//updateTime所有字符串二进制
var kechen_idStrByte = Encoding.UTF8.GetBytes(kechen_id);//encrypt所有字符串二进制
#endregion
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentType = "multipart/form-data;boundary=" + boundary;
//request.ContentType = "application/x-www-form-urlencoded";
using (Stream myRequestStream = request.GetRequestStream()) //;//定义请求流
{
#region 将各个二进制 安顺序写入请求流 modelIdStr -> (fileContentStr + fileContent) -> uodateTimeStr -> encryptStr
//myRequestStream.Write(modelIdStrByte, 0, modelIdStrByte.Length);
myRequestStream.Write(fileContentStrByte, , fileContentStrByte.Length);
myRequestStream.Write(fileContentByte, , fileContentByte.Length);
myRequestStream.Write(book_item_idStrByte, , book_item_idStrByte.Length);
myRequestStream.Write(kechen_idStrByte, , kechen_idStrByte.Length);
myRequestStream.Close();
#endregion
}
string retString = string.Empty;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();//发送
Stream myResponseStream = response.GetResponseStream();//获取返回值
//获取响应内容
using (StreamReader reader = new StreamReader(myResponseStream, Encoding.UTF8))
{
retString = reader.ReadToEnd();
}
}
}
public sealed class StringLibrary
{
public static string GetMac()
{
string result = string.Empty;
string mac = "";
ManagementClass mc;
//mac地址
mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
if (mo["IPEnabled"].ToString() == "True")
{
mac = mo["MacAddress"].ToString();
}
}
//输出
result = mac;
return result;
}
/// <summary>
/// 获取服务器URL
/// </summary>
/// <param name="str">URL后面参数</param>
/// <returns></returns>
public static string GetServerUrl(string str)
{
System.Configuration.ConfigurationManager.RefreshSection("appSettings");
string result = string.Empty;
result = string.Concat(System.Configuration.ConfigurationManager.AppSettings["ServerUrl"], str);
return result;
}
/// <summary>
/// 获取头像URL
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string GetImgUrl()
{
System.Configuration.ConfigurationManager.RefreshSection("appSettings");
string result = string.Empty;
result = System.Configuration.ConfigurationManager.AppSettings["ImgUrl"];
return result;
}
public static string GetDeviceMonikerString()
{
System.Configuration.ConfigurationManager.RefreshSection("appSettings");
string result = string.Empty;
result = System.Configuration.ConfigurationManager.AppSettings["DeviceMonikerString"];
return result;
}
public static string GetDeviceName()
{
System.Configuration.ConfigurationManager.RefreshSection("appSettings");
string result = string.Empty;
result = System.Configuration.ConfigurationManager.AppSettings["DeviceName"];
return result;
}
public static bool GetIsPrint()
{
System.Configuration.ConfigurationManager.RefreshSection("appSettings");
if (string.IsNullOrEmpty(System.Configuration.ConfigurationManager.AppSettings["IsPrint"]))
return false;
else
{
return Convert.ToBoolean(System.Configuration.ConfigurationManager.AppSettings["IsPrint"]);
}
}
//获取打印机源
//public static string GetPrintDevice()
//{
// string result = string.Empty;
// result = System.Configuration.ConfigurationManager.AppSettings["PrintDevice"];
// return result;
//}
/// <summary>
/// 獲取攝像頭像素比例
/// </summary>
/// <returns></returns>
public static string GetVideoResolution()
{
System.Configuration.ConfigurationManager.RefreshSection("appSettings");
string result = string.Empty;
result = System.Configuration.ConfigurationManager.AppSettings["VideoResolution"].Trim();
return result;
}
public static byte[] BitmapToBytes(Bitmap Bitmap)
{
MemoryStream ms = null;
try
{
ms = new MemoryStream();
//Bitmap.Save(ms, Bitmap.RawFormat);
Bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] byteImage = new Byte[ms.Length];
byteImage = ms.ToArray();
return byteImage;
}
catch (ArgumentNullException ex)
{
throw ex;
}
finally
{
ms.Close();
}
}
public static Stream BytesToStream(byte[] bytes)
{
Stream stream = new MemoryStream(bytes);
return stream;
}
/// <summary>
/// 改變相片樸素大小
/// </summary>
/// <param name="serverImagePath">图片地址</param>
/// <param name="thumbnailImagePath">缩略图地址</param>
/// <param name="width">图片宽度</param>
/// <param name="height">图片高度</param>
/// <param name="p"></param>
public static System.Drawing.Image GetThumbnail(System.Drawing.Image serverImage, int width, int height)
{
System.Drawing.Image result = null;
//System.Drawing.Image serverImage = System.Drawing.Image.FromFile(serverImagePath);
//画板大小
int towidth = width;
int toheight = height;
//缩略图矩形框的像素点
;
;
int ow = serverImage.Width;
int oh = serverImage.Height;
if (ow > oh)
{
toheight = serverImage.Height * width / serverImage.Width;
}
else
{
towidth = serverImage.Width * height / serverImage.Height;
}
//新建一个bmp图片
System.Drawing.Image bm = new System.Drawing.Bitmap(width, height);
//新建一个画板
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bm);
//设置高质量插值法
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
//设置高质量,低速度呈现平滑程度
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
//清空画布并以透明背景色填充
g.Clear(System.Drawing.Color.White);
//在指定位置并且按指定大小绘制原图片的指定部分
g.DrawImage(serverImage, , (height - toheight) / , towidth, toheight),
, , ow, oh,
System.Drawing.GraphicsUnit.Pixel);
result = bm;
serverImage.Dispose();
//bm.Dispose();
g.Dispose();
//try
//{
// //以jpg格式保存缩略图
// bm.Save(thumbnailImagePath, System.Drawing.Imaging.ImageFormat.Jpeg);
//}
//catch (System.Exception e)
//{
// throw e;
//}
//finally
//{
// serverImage.Dispose();
// bm.Dispose();
// g.Dispose();
//}
return result;
}
}
}
}
随机推荐
- linux下rsync命令详细整理
点评:rsync是一个功能非常强大的工具,其命令也有很多功能特色选项,我们下面就对它的选项一一详细说明,需要了解的朋友可以参考下-在对rsync服务器配置结束以后,下一步就需要在客户端发出rsync命 ...
- Jquery异步
一.Jquery向aspx页面请求数据$("#Button1").bind("click", function () { $.ajax({ type: &quo ...
- C++——STL之vector, list, deque容器对比与常用函数
STL 三种顺序容器的特性对比: vector 可变数组,内存空间是连续的,容量不会进行缩减.支持高效随机存取,即支持[]和at()操作.尾部插入删除效率高,其他位置插删效率较低: list 双向链表 ...
- python 输入参数解包,模块导入,接收IO输入参数
#coding=utf-8 from sys import argv script,first,second,third = argv print "the script is=" ...
- 面试题:SSH项目总结 !=!=未看 没用
阿玻罗软件(上海)有限公司已经两年了.中国银行营销系统,到民生银行小微信贷工厂建设.再到交通银行ioffice移动平台项目.以前所学的SSH好多都用不上 公司的框架.都是负责项目的贷款查找模块开发和测 ...
- Ubuntu 源使用帮助
地址 https://mirrors.ustc.edu.cn/ubuntu/ 说明 Ubuntu 软件源 收录架构 AMD64 (x86_64), Intel x86 其他架构请参考 Ubuntu P ...
- Django--登录实例
1.准备工作 创建必要的目录和文件,导入js,css,bootstrap等,目录结构如下: 2.配置文件添加static路径 settings.py 1 2 3 4 STATIC_URL = '/st ...
- 16.数据类型(data_type)
CREATE TABLE 语句 CREATE TABLE 语句用于创建数据库中的表. SQL CREATE TABLE 语法 CREATE TABLE 表名称 ( 列名称1 数据类型, 列名称2 数据 ...
- 7. Smali基础语法总结
最近在学习Android 移动安全逆向方面,逆向首先要看懂代码,Android4.4之前一直使用的是 Dalivk虚拟机,而Smali是用于Dalivk的反汇编程序的实现. Smali 支持注解,调试 ...
- C# 操作Excel基础篇(读取Excel、写入Excel)
注意事项:Excel的数据表中最多只能储存65535行数据,超出后,需要将数据分割开来进行储存.同时对于Excel中的乱码象限,是由于编码的错误方式导致引起的! 一.读取Excel数据表,获得Data ...