好友
阅读权限30
听众
最后登录1970-1-1
|
本帖最后由 angelkyo 于 2018-3-11 23:54 编辑
你的百度接口有错误,翻译不了,始终显示的原词。
正确的POST过程是这样,比如原文本是:【Welcome.】翻译结果为【欢迎。】
POST http://fanyi.baidu.com/basetrans?&from=auto&to=zh&query=Welcome. HTTP/1.1
Referer: http://fanyi.baidu.com/
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Linux; Android 4.4.2; Nexus 4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36
Content-Type: application/x-www-form-urlencoded
Accept: */*
DNT: 1
Accept-Encoding: gzip, deflate
Host: fanyi.baidu.com
HTTP/1.1 200 OK
Content-Type: application/json
Date: Sun, 11 Mar 2018 15:17:29 GMT
Server: Apache
Vary: Accept-Encoding
Transfer-Encoding: chunked
{"errno":0,"phonetic":[{"src_str":"\u6b22","trg_str":"hu\u0101n"},{"src_str":"\u8fce","trg_str":"y\u00edng"},{"src_str":"\u3002","trg_str":" "}],"from":"en","to":"zh","trans":[{"dst":"\u6b22\u8fce\u3002","prefixWrap":0,"src":"Welcome.","relation":[],"result":[[0,"\u6b22\u8fce\u3002",["0|8"],[],["0|8"],["0|9"]]]}],"dict":[],"keywords":[]}
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Json格式的Unicode码,转中文后
{"errno":0,"phonetic":[{"src_str":"欢","trg_str":"huān"},{"src_str":"迎","trg_str":"yíng"},{"src_str":"。","trg_str":" "}],"from":"en","to":"zh","trans":[{"dst":"欢迎。","prefixWrap":0,"src":"Welcome.","relation":[],"result":[[0,"欢迎。",["0|8"],[],["0|8"],["0|9"]]]}],"dict":[],"keywords":[]}
我不知道C++是如何提取Json的,以下是C#提取结果的部份代码,你参考一下
[C#] 纯文本查看 复制代码
public class TransObj
{
public string From { get; set; }
public string To { get; set; }
public List<TransResult> Trans { get; set; }
}
public class TransResult
{
public string Src { get; set; }
public string Dst { get; set; }
}
string baiduTransUrl = "http://fanyi.baidu.com/basetrans?&from=" + fromLanguage + "&to=" + toLanguage + "&query=" + HttpUtility.UrlEncode(text).Replace("+", "%20");
var ResultHtml = GetBaiduHtml(baiduTransUrl, cc, "http://fanyi.baidu.com/");
try
{
StringReader sr = new StringReader(ResultHtml);
JsonTextReader jsonReader = new JsonTextReader(sr);
JsonSerializer serializer = new JsonSerializer();
var r = serializer.Deserialize<TransObj>(jsonReader);
int len = r.Trans.Count;
string s = "";
for (int i = 0; i < len; i++)
{
if (i + 1 != len)
s += r.Trans[i].Dst + "\r\n";
else
s += r.Trans[i].Dst;
}
return s;
}
catch
{
return "服务器返回异常,请重试。"; }
|
|