我对将Refit与C#结合使用还很陌生,但是在发布CSV格式数据时遇到了一些问题。
我已经构造了一个Refit POST方法,用于将CSV格式发布为:
[Multipart]
[Post("/async-job?uploadType=multipart")]
Task<AsyncJobPostResponse> Post([Header("Authorization")] string token
, string entity_type, string file_format, byte[] file);`
并将其发布:
private static IRetailApi CreateTClient(string ApiRootUrl)
{
var tClient = RestService.For<IRetailApi>(new HttpClient
{
BaseAddress = new Uri(ApiRootUrl),
Timeout = TimeSpan.FromMinutes(5) /*time out for large dataset*/
},
new RefitSettings
{
JsonSerializerSettings = new JsonSerializerSettings { Converters = { new StringEnumConverter() }, Formatting = Formatting.Indented }
});
return tClient;
}
private void TPostStore(string token, string TApiRootUrl, int pastDays, Program pObj)
{
--gets CSV formated data--
string storeCSV = pObj.TNPRepo.GetTStoreCSVString(pastDays);
byte[] array = Encoding.ASCII.GetBytes(storeCSV);
var TClient = CreateTClient(ApiRootUrl);
var r2 = TClient.Post(token, "store", "CSV", array).Result;
timer.Stop();
Logger.InfoFormat("Request took time : {0}", timer.Elapsed);
}
POST成功并在右侧发布了CSV,但是如果我查看生成的已解析文件,则数据为JSON格式,甚至可以将一些“双精度”类型的值转换为带引号的“字符串”,而我我努力改变。 我试图创建客户JSONConverter,由于某种原因它没有选择。