.NET 8, httpclient und Datei -Uploads: Was fehlt mir? Erstellen von Anforderungen mit Header- und Abfragungsparams

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: .NET 8, httpclient und Datei -Uploads: Was fehlt mir? Erstellen von Anforderungen mit Header- und Abfragungsparams

by Anonymous » 11 Apr 2025, 16:58

Hier ist ein .NET 4.6.2 API -Web -Client, das eine Datei hochladen - einfache Dinge: < /p>

Code: Select all

var webClient = new ApiWebClient();
webClient.Timeout = timeout;

webClient.Headers.Add( HttpHeaderNames.CONTENT_TYPE, contentType );
webClient.Headers.Add( HttpHeaderNames.CONTENT_DISPOSITION, disp );

foreach (var h in _headers)
webClient.Headers.Add(h.Key, h.Value);

respBytes = webClient.UploadFile(FullUrl, fileFullPath);
Mein Problem ist es, eine Datei in .NET 8 mit httpclient zu hochladen. Die aktuelle Iteration meines Codes ist ungefähr so: < /p>

Code: Select all

var httpClient = GetHttpClient(); // gets from the HttpClientFactory
httpClient.Timeout = new TimeSpan( 0, 0, timeout );

var uriBuilder = BuildUriWithGets();
var req = new HttpRequestMessage( HttpVerb, uriBuilder.ToString() );
req.Headers.TryAddWithoutValidation( HttpHeaderNames.CONTENT_TYPE, contentType );
req.Headers.TryAddWithoutValidation( HttpHeaderNames.CONTENT_DISPOSITION, disp );

foreach (var h in _headers)
request.Headers.TryAddWithoutValidation(h.Key, h.Value);

HttpResponseMessage resp;

using var requestContent = new MultipartFormDataContent();
using var fileStream = File.OpenRead(fileFullPath);

requestContent.Add(new StreamContent(fileStream));
req.Content = requestContent;

resp = httpClient.Send(req);
< /code>
Ist dies die richtige Möglichkeit, eine Datei mit Header- und Abfrageparamien zu senden? Ich möchte, dass die Datei der Parameter "Datei" ist (ich habe Iterationen dazu ohne Verfügbarkeit ausprobiert). Ich könnte die apiwebclient 
-Anforderung und die Anfrage httpclient vergleichen, um zu sehen, was fehlt.

Top