Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-31-2023 04:48 AM - edited 03-31-2023 04:49 AM
Here is the working solution using the standard HttpClient.
Notice, there is a /file endpoint, not /upload one.
using HttpClient client = new();
client.DefaultRequestHeaders.Authorization = new BasicAuthenticationHeaderValue(_settings.CurrentValue.ServiceNowUsername, _settings.CurrentValue.ServiceNowPassword);
var url = _settings.CurrentValue.ServiceNowUrl + "/api/now/attachment/file";
url += "?table_name=" + HttpUtility.UrlEncode(tableName);
url += "&table_sys_id=" + HttpUtility.UrlEncode(sysId);
url += "&file_name=" + HttpUtility.UrlEncode(fileName);
HttpRequestMessage request = new (HttpMethod.Post, url);
request.Content = new StreamContent(stream);
request.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("binary/octet-stream");
return await client.SendAsync(request);