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



我在谷歌上搜索了将近一个小时,找不到任何能帮助我的东西。我是一名初级程序员,从TeamTreeHouse学习了C#序列化课程。在这里,我还学习了如何使用WebClient。

现在,我认为一个好的实践项目是制作一个翻译应用程序,将POST请求中的用户输入发送给谷歌,谷歌将答案返回为Json,我将其反序列化。

问题是我通读了api的文档,但我很困惑我应该向谷歌发送什么,以及如何做到这一点?

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

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

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

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

目标语言:使用目标参数指定您想要翻译成源文本字符串:使用q参数指定要翻译的每个文本字符串API键:使用键参数以识别您的应用程序。如果您使用的是OAuth 2.0服务帐户凭据(推荐(,请不要提供此参数。

所以问题是在这个示例URL中没有占位符,我可以把我的api键+源文本字符串放在目标语言中。

那么,我到底应该向谷歌发送什么,让它知道我想要什么并返回JSON文件呢?

也许有人能帮我。我知道有一个官方的库可以做到这一点,但我想练习序列化,并使用WebClient类进行web抓取,所以我想这样做。

您特别询问了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"}

此处的文档:https://cloud.google.com/translate/docs/reference/translate#body.QUERY_PARAMETERS

表示使用查询参数q、target、key等。所以你的URL应该是https://translation.googleapis.com/language/translate/v2?key=[yourAPIkey]&target=语言

相关内容

  • 没有找到相关文章

最新更新