我正在使用ASP.NET MVC的新的WebAPI的网络服务,将成为了二进制文件,主要是.cab和.exe文件.
以下控制器方法似乎有效,这意味着它返回一个文件,但它将内容类型设置为application/json:
public HttpResponseMessage<Stream> Post(string version, string environment, string filetype)
{
var path = @"C:\Temp\test.exe";
var stream = new FileStream(path, FileMode.Open);
return new HttpResponseMessage<Stream>(stream, new MediaTypeHeaderValue("application/octet-stream"));
}
Run Code Online (Sandbox Code Playgroud)
有一个更好的方法吗?
我正在尝试将 Android 设备录制的音频发送到 MVC.NET Web Api。我通过传递简单的字符串参数来确认连接。然而,当我尝试传递从音频生成的字节数组时,我每次都会从服务器得到 500。我尝试了多种配置,但这是我目前拥有的:
public class PostParms
{
public string AudioSource { get; set; }
public string ExtraInfo { get; set; }
}
public class MediaController : ApiController
{
[HttpPost]
public string Post([FromBody]PostParms parms)
{
byte[] bytes = System.Text.Encoding.UTF8.GetBytes(parms.AudioSource);
return "success";
}
}
Run Code Online (Sandbox Code Playgroud)
public class WebServiceTask extends AsyncTask<String, Void, Long>
{
@Override
protected Long doInBackground(String... parms)
{
long totalsize = 0;
String filepath = parms[0];
byte[] fileByte = convertAudioFileToByte(new File(filepath));
//Tried base64 …Run Code Online (Sandbox Code Playgroud) 有关此问题的其他背景信息,请参阅使用AngularJS和ASP.NET Web API上载/下载字节数组.
在处理用于上传/下载字节数组的TypeScript/AngularJS(v1.2.22)/ Web API解决方案时,我发现了AngularJS无法正确响应字节数组数据的客户端GET请求的情况.为了证明我的服务器代码,我在Angular之外创建了一些单独的XMLHttpRequest代码,它可以与Web API服务器代码一起正常工作.
这是有效的XMLHttpRequest代码.请注意,响应是UInt8Array构造函数的有效参数.
var oReq = new XMLHttpRequest();
oReq.open("GET", "/api/Values", true);
// Worked on IE, Chrome, and Firefox with this line commented out, Firefox docs say it should be declared.
oReq.overrideMimeType("charset=x-user-defined");
oReq.responseType = "arraybuffer";
oReq.onload = function () {
var arrayBuffer = oReq.response, bArray = new Uint8Array(arrayBuffer), str = "";
if (arrayBuffer) {
for (var i = 0; i < bArray.length; i++) {
str += bArray[i] + ((i …Run Code Online (Sandbox Code Playgroud) asp.net-mvc ×2
android ×1
angularjs ×1
arrays ×1
asp.net ×1
audio ×1
binary-data ×1
c# ×1
javascript ×1