我在探索Azure功能。到目前为止,我测试的场景效果很好。
我正试图找到一种通过Azure函数上传文件(20MB+)的方法。
其思想是Azure函数首先验证是否允许经过身份验证的用户上传文件,然后才能控制请求的流并将其保存到BLOB存储中。
下面是来自客户端的代码,它创建一个StreamContent将字节发送到服务器:
using (Stream fileStream = ...)
{
var streamContent = new StreamContent(fileStream);
streamContent.Headers.ContentType = new Medi
我有一个瘦的前端API服务,它对接收到的数据进行一些预处理,然后使用HttpClient将数据发送到我的后端API服务。
在一些复杂的情况下,请求包含带有JSON和文件的多部分数据,而我根本不想在前面解析它。后端将完成这项工作。
因此,我想把请求“如实”-尽可能原始(不关心它的内容和它是否是多部分),并将其转发到后端API。
我尝试了以下几点:
var msg = new HttpRequestMessage(HttpMethod.Post, resourceUrl);
msg.Content = new StreamContent(request.Body);
var apiResponse
我正在寻找用JSON类参数向服务器发送请求的解决方案。
我用了这个密码,
var httpClient = new HttpClient();
var tempByteArray = Encoding.UTF8.GetBytes("my valid json");
var stream = new MemoryStream(tempByteArray);
var streamContent = new StreamContent(stream);
var request = new HttpRequestMessage(HttpMethod.Post, Constants.Lo
我使用Polly和Microsoft.Extensions.Http.Polly相结合来处理与具有速率限制(N个请求/秒)的外部API的通信,我也使用.NET 6。
策略本身对于大多数请求都很好,但是它不能正确地用于发送(流)数据。API客户端需要使用MemoryStream。当Polly策略处理并重试请求时,不会发送流数据。我用这个最小的例子验证了这个行为起源于.NET本身:
using var fileStream = File.OpenRead(@"C:\myfile.pdf");
using var memoryStream = new MemoryStream();
我需要从磁盘读取一堆文件,动态存档,然后发送到内存流压缩的Web。但是每次我得到错误都不能关闭流,直到所有的字节被写入。
如果我将zip文件保存到本地磁盘,然后打开FileStream并将其发送到WebAPI,那么我的代码可以正常工作,但我需要在不保存的情况下动态执行。这是我的代码:
using (MemoryStream mZip = new MemoryStream())
{
using (ZipOutputStream zipOStream = new ZipOutputStream(mZip))
{
foreach (FileInfo fi in all
我目前正在计划一种通过web api的更新机制。传输的文件最大可达1 GB,并且可能有20个客户端同时尝试获取文件。
每当我查看示例时,我都会发现类似于以下内容(简化):
public HttpResponseMessage GetFile(string name)
{
var reqFile = @"C:\updates\" + name;
var dataBytes = File.readAllBytes(reqFile)
var dataStream new MemoryStream (dataBytes);
HttpRespons
考虑使用ASP.NET web编写的Web服务,将任何数字文件接受为“多部分/混合”请求。helper方法mat看起来如下(假设_client是System.Net.Http.HttpClient的一个实例):
public T Post<T>(string requestUri, T value, params Stream[] streams)
{
var requestMessage = new HttpRequestMessage();
var objectContent = requestMessage.CreateContent(
val
我有个问题。目前,我在Web控制器中的代码将一个HttpResponseMessage发送回浏览器,如下所示:
var response = new HttpResponseMessage(HttpStatusCode.OK);
MemoryStream stream = ConvertWordToPdf(document.Path);
response.Content = new ByteArrayContent(stream.GetBuffer());
response.Content.Headers.ContentType = new MediaTypeHeaderValue(&
我想将文件和json数据从HttpClient发送到web服务器。
我似乎无法通过有效负载访问服务器中的json,只作为json访问。
public class RegulationFilesController : BaseApiController
{
public void PostFile(RegulationFileDto dto)
{
//the dto is null here
}
}
这是客户端:
using (var client = new HttpClient())
我想调用一个web方法,让它允许用户下载我在内存中创建的zip文件。我还想在内存中创建条目。
我很难让服务器正确地输出下载。
以下是我的web方法:
[HttpGet]
[Route("api/downloadstaffdata")]
public HttpResponseMessage DownloadStaffData()
{
var response = new HttpResponseMessage(HttpStatusCode.OK);
using (var stream = new MemoryStream())
{
usin
有没有人能解释一下我如何用不同类型的数据向web上的URL发出POST请求,在我的例子中,我有一个图像和两个字符串类型的值要发送到PHP中的服务器。
下面是我已经做过的事情
var stream = await file.OpenStreamForReadAsync();
var streamcontent = new StreamContent(stream);
streamcontent.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data")
{
Name = "
当我使用邮递员尝试将一个大文件上传到我的服务器(用.NET Core2.2编写)时,邮递员立即显示HTTP Error 404.13 - Not Found错误:The request filtering module is configured to deny a request that exceeds the request content length
但是,当我使用我的代码上传那个大文件时,它会卡在行上发送文件。
我的客户代码:
public async void TestUpload() {
StreamContent streamContent = new