排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256
50010702506256
欢迎加群交流技术
分类:
人工智能
url方式:
public void Invoke()
{
//ak,sk信息设置
string ak_id = "your ak_id";
string ak_secret = "your ak_secret";
string method = "POST";
string accept = "application/json";
string contentType = accept;
string body = "{\"type\":0, \"image_url\":\"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1581938602023&di=d760709c2b6602b0b7d470de2e1f691d&imgtype=0&src=http%3A%2F%2Fimg.mm4000.com%2Ffile%2Fc%2F7d%2F0e31e767b7_800.jpg\"}";
byte[] data = Encoding.ASCII.GetBytes(body);
string date = DateTime.UtcNow.GetDateTimeFormats('r')[0].ToString();
string urlpra = "/image/tag";
string bodyMd5 = Convert.ToBase64String(new System.Security.Cryptography.MD5CryptoServiceProvider().ComputeHash(Encoding.UTF8.GetBytes(body)));
string result = "";
//待加密
string stringToSign = method + "\n" + accept + "\n" + bodyMd5 + "\n" + contentType + "\n" + date + "\n" + urlpra;
//stringToSign计算 HMAC-SHA1得到signature
string signature = Convert.ToBase64String(new System.Security.Cryptography.HMACSHA1(Encoding.UTF8.GetBytes(ak_secret)).ComputeHash(Encoding.UTF8.GetBytes(stringToSign)));
//得到 authorization header
string authHeader = "Dataplus " + ak_id + ":" + signature;
WebRequest req = WebRequest.Create("https://dtplus-cn-shanghai.data.aliyuncs.com/image/tag");
req.Method = method;
req.ContentType = accept;
req.GetRequestStream().Write(data, 0, data.Length);
//利用解决:"此标头必须使用适当的属性进行修改" 异常
MethodInfo priMethod = req.Headers.GetType().GetMethod("AddWithoutValidate", BindingFlags.Instance | BindingFlags.NonPublic);
priMethod.Invoke(req.Headers, new[] { "Date", date });
priMethod.Invoke(req.Headers, new[] { "Authorization", authHeader });
priMethod.Invoke(req.Headers, new[] { "Accept", accept });
string t = DateTime.UtcNow.GetDateTimeFormats('r')[0].ToString();
try
{
result = new StreamReader(req.GetResponse().GetResponseStream()).ReadToEnd();
Console.WriteLine("result:" + result);
}
catch (WebException e)
{
Console.WriteLine(e.GetBaseException());
Console.WriteLine(new StreamReader(e.Response.GetResponseStream()).ReadToEnd());
}
}base64方式:
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)
评价