C# 如何在POST请求中传递图像?

C# 如何在POST请求中传递图像?,c#,.net,C#,.net,我学习了一个网站的API,我需要像post请求一样传递图像。 这是我的代码: var bytes = File.ReadAllBytes(@"C:\Users\Name\Desktop\test\myImage.jpg"); var str = Encoding.Default.GetString(bytes, 0, bytes.Length); Post(uri, GetParams("file", str)); private static string P

我学习了一个网站的API,我需要像post请求一样传递图像。 这是我的代码:

    var bytes = File.ReadAllBytes(@"C:\Users\Name\Desktop\test\myImage.jpg");
    var str = Encoding.Default.GetString(bytes, 0, bytes.Length);
    Post(uri, GetParams("file", str));

    private static string Post(string uri, NameValueCollection parameters)
        {
            using (var client = new WebClient())
            {
                var response = client.UploadValues(uri, parameters);

                return Encoding.Default.GetString(response);
            }
        }
   private static NameValueCollection GetParams(params string[] param)
        {
            var result = new NameValueCollection();
            if (param.Length % 2 != 0)
                return result;
            for (int i = 0; i < param.Length; i += 2)
                result[param[i]] = param[i + 1];
            return result;
        }
var bytes=File.ReadAllBytes(@“C:\Users\Name\Desktop\test\myImage.jpg”);
var str=Encoding.Default.GetString(bytes,0,bytes.Length);
Post(uri,GetParams(“file”,str));
私有静态字符串Post(字符串uri、NameValueCollection参数)
{
使用(var client=new WebClient())
{
var response=client.UploadValues(uri,参数);
返回Encoding.Default.GetString(响应);
}
}
私有静态NameValueCollection GetParams(参数字符串[]参数)
{
var result=新的NameValueCollection();
如果(参数长度%2!=0)
返回结果;
对于(int i=0;i
我从来没有使用API来传递一些文件,可能是一个错误?我使用simle参数的方法,也许我必须传递其他图像

       using (var client = new WebClient())
            {
                var response = client.UploadFile(apiUrl, @"C:\Users\User\Desktop\test\asd.jpg");
            }

它正在工作

您的代码有什么问题?这不管用吗?为什么不呢?您是否收到错误消息?我收到(500)个内部服务器错误。内部错误是什么?错误是“未写入视图详细信息”。检查来自服务器的响应。这里面可能有个指针。