如何使用C#WebClient向Google Translate Api发送POST请求?

时间:2017-08-29 16:54:42

标签: c# webclient google-translate

我现在用Google搜索了将近一个小时,找不到任何可以帮助我的东西。我是一名初学者,并在TeamTreeHouse中使用C#中的序列化课程。在这里,我还学习了如何使用WebClient。

现在我认为一个好的做法Project将是制作一个Translate应用程序,在POST请求中发送谷歌用户输入,Google将答案作为Json返回,我将其反序列化。

问题是我阅读了api的文档,但是我对谷歌应该发送到谷歌的内容非常困惑,真的是如何做到这一点?

我知道方法webclient.Headers.Add(arguments here),但我真的不知道它还需要什么。

你可以在这里找到一个例子:

https://cloud.google.com/translate/docs/translating-text

  

https://translation.googleapis.com/language/translate/v2三个查询   每个翻译请求都需要参数:

     

目标语言:使用target参数指定您的语言   想翻译成。 源文本字符串:使用q参数   指定要翻译的每个文本字符串。 API密钥:使用key参数   识别您的申请。如果您使用的是OAuth 2.0服务   帐户凭据(推荐),请勿提供此参数。

问题是该示例网址中没有占位符,我可以将我的api密钥+源文本字符串作为目标语言。

那么究竟应该向谷歌发送什么以便它知道我想要什么并将JSON文件返回给我?

也许有人可以帮助我。我知道有一个正式的库正是这个,但我想练习序列化和使用WebClient类的Web抓取,所以我想这样做。

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

您专门询问过POST。

  1. 您可以使用以下网址:

    https://translation.googleapis.com/language/translate/v2?key=MY_KEY

当然,用您的密钥替换MY_KEY。

  1. 为内容类型添加标题:

    application / json; charset = utf-8

  2. 将文本和目标语言格式设置为JSON并将其写入请求流:

    {“ q”:“团队工作是此地点的主要进步创造者,似乎每个人都愿意在可能的时候提供帮助。”,“ target”:“ fr”}