C#HTTP文件上传和参数

这篇具有很好参考价值的文章主要介绍了C#HTTP文件上传和参数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

C#HTTP文件上传和参数

背景:公司系统服务接口是Restful API,商户有用Java、PHP、C#来对接的,这时,公司就需要提供相应编程语言的demo了。



前言

在这里是来介绍本次C#编程语言demo所遇到的其中一些情况,主要内容:HTTP文件上传和参数。


一、HTTP文件上传和参数


指的是上传附件,并且同时带有其他请求参数的接口。

1.引入库

using System.Net.Http;
using System.Text;
using System.Web;
using System.Net;
using System.Net.Http.Headers;
using System.IO;

2.具体实现

代码如下(示例):

public string MultipartFormPost(string param, string filePath)
        {
            string result = string.Empty;
            string url = Constants.TEST_URL + req.GetUrl();
            MultipartFormDataContent postContent = new MultipartFormDataContent();
            //生成一个分割符
            string boundary = string.Format("--{0}", DateTime.Now.Ticks.ToString("x"));
            //设置上传文件的内容格式
            postContent.Headers.Add("ContentType", $"multipart/form-data, boundary={boundary}");
            FileStream stream = new FileStream(filePath,FileMode.Open, FileAccess.Read);
            //获取文件名称
            string fileName = filePath.Substring(filePath.LastIndexOf("\\") + 1);
            //Add方法的第一个参数是请求内容,第二个参数是对应接口的文件接收名称,
            //第三个是文件名称,一定需要给值,否则:System.NullReferenceException: 未将对象引用设置到对象的实例
            postContent.Add(new StreamContent(stream, (int)stream.Length), "file",fileName);
            //req_data为请求文件接口需要的参数,根据调用接口参数而定
            postContent.Add(new StringContent(param), "req_data");
            // 实例化HttpClient
            HttpClient client = new HttpClient();
            // 发送请求
            HttpResponseMessage response = client.PostAsync(url, postContent).Result;
            if (response.IsSuccessStatusCode)
            {
                result = response.Content.ReadAsStringAsync().Result;
                Dictionary<string, object> resultData = JsonConvert.DeserializeObject<Dictionary<string, object>>(result);
            }
            client.Dispose();
            return result;
        }

二、一般HTTP请求


指的是不带附件,请求参数是表单格式或者JSON格式的请求报文。

1.引入库

using System.Net.Http;
using System.Text;
using System.Web;
using System.Net;
using System.Net.Http.Headers;

2.具体实现

代码如下(示例):文章来源地址https://www.toymoban.com/news/detail-649751.html

public static string PostRequest(string url, string postData, string pubKey)
        {
            string result = string.Empty;
            HttpContent httpContent = new StringContent(postData);
            //根据接口的要求提供对应的内容类型值,这里是表单格式的内容格式:即所有请求参数以key=val的格式拼接到URL
            httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded");
            HttpClient httpClient = new HttpClient();
            string requestParam = url + "?" + postData;
            HttpResponseMessage response = httpClient.PostAsync(requestParam, httpContent).Result;
            if (response.IsSuccessStatusCode)
            {
                result = response.Content.ReadAsStringAsync().Result;
                Dictionary<string, object> resultData = JsonConvert.DeserializeObject<Dictionary<string, object>>(result);                
                }
            }
            return result;
        }

总结

  平时主要是用Java来开发,这次突然接到需要用C#来写个商户对接demo,刚开始还是有点懵,基于以前另一个项目的C#demo,以及与Java的相似之处,东拼西凑的也算是写下来了,本文仅用来记录一下,怕以后还来这样的任务,不至于跟这次一样的茫然,最后就是:以后记得多学习,不然就会像我一样。

到了这里,关于C#HTTP文件上传和参数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HTTP:http上传文件的原理及java处理方法的介绍

    为了说明原理,以下提供一个可以上传多个文件的例子,html页面代码如下:  显示效果如下:  通过点“浏览”选择要上传的文件,并分别输入保存时使用的文件名:  我们使用spring来处理上传的文件,代码如下:  为了能使以上代码正常运行,还要做一些配置。比如,如果

    2024年02月11日
    浏览(28)
  • mongoose库实现http文件上传

    常用于url链接和application/x-www-form-urlencoded格式的请求体中对参数进行编码 由于url的参数的样子是key1=value1key2=value2,如果key或者value中包含= 等字符,就会导致解析时混乱了,因此需要一种编码来把这些可能引起歧义的符号替换掉 例如:http://localhost/src/components/global/Checkbox.vu

    2024年02月14日
    浏览(31)
  • [Python http.server] 搭建http服务器用于下载/上传文件

    动机: 笔者需测试bs架构下的文件上传与下载性能,故想通过Python搭建http服务器并实现客户端与服务器之间的文件上传和下载需求 难点: 这应该是很基础的东西,不过笔者之前未接触过http编程,谨在此记录下学习的过程,可能不是最优解 方法: 在服务器端部署html页面,并

    2024年02月11日
    浏览(42)
  • Golang Gin框架HTTP上传文件

    HTTP上传的文件的原理 HTTP协议的文件上传是通过HTTP POST请求实现的,使用multipart/form-data格式将待上传的文件放入请求体中。 服务器根据请求头中的boundary参数来解析请求体,并根据Content-Disposition字段获取文件名等信息,根据Content-Type字段判断文件类型并保存到相应位置。

    2024年02月05日
    浏览(39)
  • 【UE】HTTP接口上传文件_文件作为入参

    假设需要在UE中发送下方接口传输文件 使用From-data格式 在请求头Content-Type中加入间隔符Boundary 使用LoadFileToArray()读取文件,并加入分隔符、文件头等内容 转成字节 作为Content 创建BlueprintFunctionLibrary蓝图函数库 对应Build.cs中加入Http模块 增加函数 .h中 .cpp中 函数前改为自己的函

    2024年02月03日
    浏览(40)
  • 通过HttpPost发送http请求实现文件上传

    通过HttpPost发送http请求,实现postman上传文件效果 需要引入: ** 关键代码:multipartEntityBuilder.addBinaryBody ** 如还需传入其他文本参数:如下图 本人亲自验证有效。

    2024年02月12日
    浏览(37)
  • ABAP - 调用HTTP/HTTPS接口上传文件

    如果调用该外部接口是需要使用Oauth2.0的话,可参照该文章里的OAuth2.0的部分: ABAP代码使用OAuth2.0 Client Credential调用外部API 首先,先将文件内容转成binary格式的内表 , 可参照文章: 内表文件的,可参照ABAP - 下载ALV内表 - download ALV internal table SOST里的附件的,可参照ABAP获取发

    2024年02月20日
    浏览(42)
  • java创建上传文件接口并使用HTTP测试

    备注: 使用jersey框架 2.1.1.上传本地文件 参考链接: Jersey (JAX-RS) multiple files upload example

    2024年02月11日
    浏览(287)
  • C/C++ 通过HTTP实现文件上传下载

    WinInet(Windows Internet)是 Microsoft Windows 操作系统中的一个 API 集,用于提供对 Internet 相关功能的支持。它包括了一系列的函数,使得 Windows 应用程序能够进行网络通信、处理 HTTP 请求、FTP 操作等。WinInet 提供了一套完整的网络通信工具,使得开发者能够轻松地构建支持网络功

    2024年02月19日
    浏览(46)
  • c#——WCF和HTTP文件传输实验

    (1)掌握HTTP协议下WCF服务应用程序构建方法。 (2)掌握WCF客户端和服务端的消息交换模式。 (3)掌握协定的设计及实现方法。 (4)熟悉WCF和HTTP的相关绑定设置。 (5)掌握流的读写操作方法。 在同一个解决方案中,分别编写服务端程序和客户端程序,利用HTTP和流传输实

    2024年02月07日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包