【发布时间】:2020-02-08 11:37:06
【问题描述】:
我正在调用一个端点并返回string(JavaScript 中的TypedArray)格式,如下面[12,44,36,132,22,19,99]
并希望将该字符串转换回byte[]。
我正在使用
var byteData = Regex.Replace(fileData, @"\[*\]*", "").Split(',').Select(x => byte.Parse(x)).ToArray();
但只是想知道是否有更优雅的方法来做到这一点?谢谢大家
protected void downloadFile(string fileKey)
{
var url = _apiFileDataUrl + fileKey;
_filename = fileKey.Split('/').LastOrDefault();
Log.Information($"Endpoint hit: {url}");
var requestData = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri(url)
};
requestData.Headers.Add("X-Auth", _x_auth);
requestData.Headers.Add("x-api-key", _x_api_key);
//requestData.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
var results = _client.SendAsync(requestData).Result;
if (results.StatusCode != HttpStatusCode.OK)
{
throw new Exception($"Campaign failure at fileKey {fileKey} \n\n {(int)results.StatusCode}: {results.ReasonPhrase}");
}
var fileData = results.Content.ReadAsStringAsync().Result;
if (fileData.Length > 0)
{
var byteData = Regex.Replace(fileData, @"\[*\]*", "").Split(',').Select(x => byte.Parse(x)).ToArray();
//var byteData = fileData.Replace("[", "").Replace("]", "").Split(',').Select(x => byte.Parse(x)).ToArray();
//var dt = DataTableHelper.CsvToDataTable(byteData, "\r\n",'|');
File.WriteAllBytes(DataFilePath + _filename, byteData);
}
}
【问题讨论】:
-
这只是用空字符串替换“[]”吗? Regex.Replace(fileData, @"[]", "") 我无法想象您会将 [[]] 或类似的东西发送到服务器的情况。除此之外,其余的对我来说都很好
标签: javascript c# arrays