我在谷歌上搜索了将近一个小时,找不到任何能帮助我的东西。我是一名初级程序员,从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。
-
您可以使用以下网址:
https://translation.googleapis.com/language/translate/v2?key=MY_KEY
当然,用您的密钥替换MY_KEY。
-
为内容类型添加标题:
application/json;charset=utf-8
-
将文本和目标语言格式化为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=语言