东方税亩建材有限公司

首頁業(yè)務(wù)動(dòng)態(tài)

阿里云的RPC風(fēng)格接口asp版代碼(機(jī)器翻譯通用版asp寫的)

點(diǎn)擊:發(fā)布日期:2023/12/28
今天接了一個(gè)小活,用asp寫阿里云的機(jī)器翻譯通用版api接口,本以為是小活,沒想到搞一天,阿里云的api很變態(tài),說說過程:
1、先看了《《RPC 調(diào)用機(jī)制》公共請(qǐng)求參數(shù)組裝方案》,學(xué)會(huì)阿里云 RPC OpenAPI 向開發(fā)者提供的HTTP接口,來構(gòu)造 HTTP 請(qǐng)求調(diào)用對(duì)應(yīng)的 OpenAPI
2、又去了《阿里云 OpenAPI 開發(fā)者門戶》找到API 版本
3、又去《RAM 控制臺(tái)》搞AccessKeyId
4、又研究如何按照ISO8601標(biāo)準(zhǔn)表示,并需要使用 UTC時(shí)間去搞Timestamp
5、又研究HMAC-SHA1加密方式
6、然后在研究簽名機(jī)制
7、又繞回去研究URL接口請(qǐng)求構(gòu)造
8、為了適應(yīng)他請(qǐng)求參數(shù)進(jìn)行規(guī)范化編碼。又學(xué)了參數(shù)編碼方式,使用 UTF-8 字符集按照RFC3986規(guī)則進(jìn)行編碼
9、構(gòu)造簽名字符串又學(xué)了按照RFC2104的定義,用Base64() 為編碼計(jì)算函數(shù),HMAC_SHA1() 為 HMAC_SHA1 簽名函數(shù),返回值為 HMAC_SHA1 加密后原始字節(jié),而非16進(jìn)制字符串,UTF_8_Encoding_Of() 是 UTF-8 字符編碼
10、通過各種文檔,被他繞來繞去,終于成功寫好:機(jī)器翻譯通用版

搞了一整天,現(xiàn)在都快哭了,不說了,上代碼吧

<%
'公共請(qǐng)求參數(shù)
'RPC風(fēng)格接口,公共請(qǐng)求參數(shù):https://help.aliyun.com/zh/sdk/product-overview/rpc-mechanism#sectiondiv-qq5-utu-r7a
Action = "TranslateGeneral"'https://help.aliyun.com/document_detail/158244.html?spm=a2c4g.457286.0.0.7a7b2056hIFWX1
Version = "2018-10-12"'https://next.api.aliyun.com/product/alimt
Format = "JSON"'https://help.aliyun.com/zh/sdk/product-overview/rpc-mechanism#sectiondiv-qq5-utu-r7a
AccessKeyId = "LTAI5tM9m77Q29fxnwjxfTfg"'https://ram.console.aliyun.com/manage/ak?spm=a2c4g.11186623.0.0.39553e76BFOaL7
SignatureNonce = MakeRandStr(32)
Timestamp = GetDateTime
SignatureMethod = "HMAC-SHA1"
SignatureVersion = "1.0"
RegionId = "cn-hangzhou" 
'下面這個(gè)不在公共請(qǐng)求參數(shù)之內(nèi)
AccessKeySecret = "eFlnvrYMHjWxQV0kgwxPDmciHCJOUK"
%>


<%
'OpenAPI 文檔中的請(qǐng)求參數(shù)
FormatType = "text"
Scene = "general"
SourceLanguage = "zh"
SourceText = "你好"
TargetLanguage = "en"
%>

<%
Arr = Array("Action="&SpecialUrlEncode(Action),"Version="&SpecialUrlEncode(Version),"Format="&SpecialUrlEncode(Format),"AccessKeyId="&SpecialUrlEncode(AccessKeyId),"SignatureNonce="&SpecialUrlEncode(SignatureNonce),"Timestamp="&SpecialUrlEncode(Timestamp),"SignatureMethod="&SpecialUrlEncode(SignatureMethod),"SignatureVersion="&SpecialUrlEncode(SignatureVersion),"FormatType="&SpecialUrlEncode(FormatType),"Scene="&SpecialUrlEncode(Scene),"SourceLanguage="&SpecialUrlEncode(SourceLanguage),"SourceText="&SpecialUrlEncode(SourceText),"TargetLanguage="&SpecialUrlEncode(TargetLanguage),"RegionId="&SpecialUrlEncode(RegionId))
Arr2 = kSort(Arr)
CanonicalizedQueryString = ToUrlParams(arr2)

url = "http://mt.cn-hangzhou.aliyuncs.com/api/translate/web/general?Signature="&Sign(CanonicalizedQueryString)&"&"&CanonicalizedQueryString
Result = Get_url(url)
%>



<%
set obj = getjson(Result)
if isobject(obj) Then
Response.Write(obj.Code)
Response.Write("<br>")
Response.Write(obj.data.Translated)
Response.Write("<br>")
Response.Write(obj.RequestId)
Response.Write("<br>")
End If
set obj = Nothing
%>
關(guān)閉右側(cè) ×
微信掃碼加好友
咨詢電話:13605391911
  • 掃一掃微信加好友

  • 售后服務(wù)

地址:山東省臨沂市蘭山區(qū)北園路創(chuàng)業(yè)大廈9F
電話:13605391911、13969949049、0539-3368600、0539-3366198