关于C#HTTP POST发送消息
年前对接了一个省平台

上图为数据提交说明,之前一直对Http提交有些模糊,索性整理一下,做个记录。
/// <summary> /// Http Post请求 /// </summary> /// <param name="url">地址</param> /// <param name="AuthValue">认证</param> /// <param name="parameters">参数列表</param> /// <param name="filePath">文件地址</param> /// <returns></returns> public string Post(string url, string AuthValue,Dictionary<string, string> parameters, string filePath) { try { using (HttpClient client = new HttpClient()) { var content = new MultipartFormDataContent(); foreach (var parameter in parameters) { content.Add(new StringContent(parameter.Value), parameter.Key); } if (!string.IsNullOrEmpty(filePath)) { content.Add(new ByteArrayContent(System.IO.File.ReadAllBytes(filePath)), "dataFile", filePath.Substring(filePath.LastIndexOf('\\') + 1)); } var authenticationHeaderValue = new AuthenticationHeaderValue("Basic", AuthValue); client.DefaultRequestHeaders.Authorization = authenticationHeaderValue; return client.PostAsync(url, content).Result.Content.ReadAsStringAsync().Result; } } catch (Exception ex) { return ex.Message; } }
使用示例:
/// <summary> /// 上传 /// </summary> /// <param name="url">地址</param> /// <param name="zippath">压缩文件绝对地址 例如:D:\XmlTemp.zip</param> /// <returns></returns> private PlatformReturnModel Upload(string url, string zippath) { if (string.IsNullOrEmpty(url) || string.IsNullOrEmpty(ConfigMgr.platformunitCode) || string.IsNullOrEmpty(ConfigMgr.platformpassword)) return null; var encoded = StringConverter.StrToBase64("unitCode=" + ConfigMgr.platformunitCode + ":password=" + ConfigMgr.platformpassword); Dictionary<string, string> dic = new Dictionary<string, string>(); dic.Add("unitCode", ConfigMgr.platformunitCode); dic.Add("password", ConfigMgr.platformpassword); HttpHelper httphelper = new HttpHelper(); var returnstr = httphelper.Post(url, encoded, dic, zippath); return XmlToModel<PlatformReturnModel>(returnstr); }

浙公网安备 33010602011771号