时间:2016-02-16 00:46 来源: 我爱IT技术网 作者:佚名
欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【Asp.NET调用百度翻译的方法】,下面是详细的讲解!
Asp.NET调用百度翻译的方法
using System;using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Json;
using System.Text;
using System.Web;
public partial class FanYi_baidu : System.Web.UI.Page
{
string url=@"http://openapi.baidu.com/public/2.0/bmt/translate";
string requestDetail="client_id=申请的ID";
protected void Page_Load(object sender, EventArgs e)
{
}
[DataContract]
public class AdmAccessToken
{
[DataMember]
public string from { get; set; }
[DataMember]
public string to { get; set; }
[DataMember]
public string error_code { get; set; }
[DataMember]
public string error_msg { get; set; }
[DataMember]
public string query { get; set; }
[DataMember]
public List<TokenResult> trans_result { get; set; }
}
[DataContract]
public class TokenResult
{
[DataMember]
public string src { get; set; }
[DataMember]
public string dst { get; set; }
}
//百度翻译返回数据结构
//{
//"from": "en",
//"to": "zh",
//"trans_result": [
// {
// "src": "today",
// "dst": "今天"
// },
// {
// "src": "tomorrow",
// "dst": "明天"
// }
//],
//"error_code": "52001",
//"error_msg": "TIMEOUT",
//"query": "he's"
//}
/// <summary>
/// 采用Post方式提交数据
/// </summary>
/// <param name="DatamarketAccessUri">目标网址</param>
/// <param name="requestDetails">参数字符串</param>
/// <returns></returns>
private AdmAccessToken HttpPost(string DatamarketAccessUri, string requestDetails)
{
//Prepare OAuth request
WebRequest webRequest=WebRequest.Create(DatamarketAccessUri);
webRequest.ContentType="application/x-www-form-urlencoded";
webRequest.Method="POST";
byte[] bytes=Encoding.ASCII.GetBytes(requestDetails);
webRequest.ContentLength=bytes.Length;
using (Stream outputStream=webRequest.GetRequestStream())
{
outputStream.Write(bytes, 0, bytes.Length);
}
using (WebResponse webResponse=webRequest.GetResponse())
{
DataContractJsonSerializer serializer=new DataContractJsonSerializer(typeof(AdmAccessToken));
//Get deserialized object from JSON stream
AdmAccessToken token=(AdmAccessToken)serializer.ReadObject(webResponse.GetResponseStream());
return token;
}
}
protected void Translate_Click(object sender, EventArgs e)
{
resultText.Text="";
if (sourceWord.Text.Trim() !="")
{
string requestStr=requestDetail + "&from=" + ddlFrom.SelectedValue
+ "&to=" + ddlTo.SelectedValue
+ "&q=" + HttpUtility.UrlEncode(sourceWord.Text);
AdmAccessToken token=HttpPost(url, requestStr);
if (token.error_code !=null)
{
resultText.Text=token.error_msg;
}
else
{
int n=token.trans_result.Count;
for (int i=0; i < n; i++)
{
resultText.Text +=token.trans_result[i].dst + (i < n-1 ? "\n" : "");
}
}
}
else
{
resultText.Text="请输入要翻译的内容";
}
}
}
关于Asp.NET调用百度翻译的方法的用户互动如下:
相关问题:
答: >>详细
相关问题:
答: >>详细
相关问题:
答: >>详细
- 【asp】asp.net url重写浅谈-net-url重写
- 【DataSet】DataSet、DataTable、DataRow区别详解
- 【asp】asp.net 动态添加多个用户控件-net-动态添
- 【ASP】ASP.NET中内嵌页面代码的一个问题-NET-内
- 【As】Asp.net中的页面乱码的问题-sp--pn-ne-et
- 【增加记录】asp.net中获取新增加记录的ID Access
- 【创建】ASP.NET Web API教程 创建域模型的方法详
- 【Asp】Asp.net 页面调用javascript变量的值-net-
- 【ASP】ASP.NET 5升级后如何删除旧版本的DNX-NET5
- 【404页面】ASP.NET设置404页面返回302HTTP状态码
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
