我现在用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抓取,所以我想这样做。
答案 0 :(得分:0)
此处的文档:https://cloud.google.com/translate/docs/reference/translate#body.QUERY_PARAMETERS
表示使用查询参数q,target,key等。 因此,您的网址应该是https://translation.googleapis.com/language/translate/v2?key=[yourAPIkey]&target=language
答案 1 :(得分:0)
您专门询问过POST。
当然,用您的密钥替换MY_KEY。
为内容类型添加标题:
application / json; charset = utf-8
将文本和目标语言格式设置为JSON并将其写入请求流:
{“ q”:“团队工作是此地点的主要进步创造者,似乎每个人都愿意在可能的时候提供帮助。”,“ target”:“ fr”}