我正在使用RestEase客户端库从一个服务向另一个服务发出请求.它的界面看起来像这样
public interface IImportService1ApiClient
{
[Put]
[Header("Content-Type", "multipart/form-data")]
Task<CreateValidationJobResponse> ImportZip([Body] byte[] zipByteArray);
}
Run Code Online (Sandbox Code Playgroud)
和端点(.Net Core 1.1,Web Api):
[HttpPut()]
[Consumes("multipart/form-data")]
public async Task<IActionResult> ImportZip()
{
var zipFile = HttpContext.Request.Form.Files.FirstOrDefault();
...
Run Code Online (Sandbox Code Playgroud)
所以我能够提出请求,但是当我试图从froms文件集中获取文件时,我得到了一个例外
System.IO.InvalidDataException: Missing content-type boundary.
Run Code Online (Sandbox Code Playgroud)
堆栈跟踪:
Connection id "0HL8CNQ0E4M94": An unhandled exception was thrown by the application.
System.IO.InvalidDataException: Missing content-type boundary.
at Microsoft.AspNetCore.Http.Features.FormFeature.GetBoundary(MediaTypeHeaderValue contentType, Int32 lengthLimit)
at Microsoft.AspNetCore.Http.Features.FormFeature.<InnerReadFormAsync>d__18.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.AspNetCore.Http.Features.FormFeature.ReadForm()
at RODIX.Tacs.Services.Import.Api.Controllers.TacsLegacyImportController.<ImportZip>d__3.MoveNext() in …Run Code Online (Sandbox Code Playgroud) 我创建了Pull Request来触发构建并且构建成功,但是一段时间后我的构建状态变为"build expired",所以为了完成pull请求我需要再次触发它.所以问题是:为什么会发生这种情况以及如何避免构建过期?
我正在使用 JsonConvert SerializeXmlNode 将 xml 转换为 json。我面临的问题是我有一个标签有时可以有值有时为空
<AustrittDatum>2018-01-31+01:00</AustrittDatum>
...
<AustrittDatum xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
Run Code Online (Sandbox Code Playgroud)
结果 - 我在尝试将 json 反序列化为具有字符串属性“AustrittDatum”的 C# 对象时遇到异常 - “Newtonsoft.Json.JsonReaderException: 'Error reading string. Unexpected token: StartObject.Path 'AustrittDatum'.' “, 因为
<AustrittDatum xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance xsi:nil="true"/>
Run Code Online (Sandbox Code Playgroud)
被序列化为
"AustrittDatum": {
"@xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
"@xsi:nil": "true"
},
Run Code Online (Sandbox Code Playgroud)
我怎样才能强迫它成为这样的事情,"AustrittDatum": ""或者也许有一些适当的方法来解决它?
我正在使用基于丰富的 Lucene 查询解析器语法的 Azure 搜索。我将“~1”定义为距离一个符号的附加参数)。但我面临的问题是,即使存在完全匹配,实体也不会被排序。(例如,“blue~1”会返回“blues”、“blue”、“glue”。或者在搜索“P002”等产品SKU时,我会得到“P003”、“P005”、“P004”、“ P002", "P001", "P006" ) 所以我的问题是:有什么方法可以定义,完全匹配的实体必须在列表中的第一个,或者即使在我使用模糊搜索时也是单一搜索结果“~1 “?
我有一个 REST API 端点,它在 .Net Core 1.1 上接收 zip 文件。我从这样的请求中获取 IFormFile
var zipFile = HttpContext.Request.Form.Files.FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
然后我需要将它传递给不支持 IFormFile 的 .Net Standard 1.5 中的 service 方法。
所以问题是:如何将 IFormFile 转换为 ZipFile 或标准 1.5 支持的其他类型,或者可能有一些更合适的方法来操作 zip 文件?谢谢!