2016-05-12 71 views
0

錯誤說:無法獲得在C#中HttpWebRequest的從響應

"The remote server returned an error: (http://www.tgv.com.my/movies/man-city-v-arsenal-HO00005174) Forbidden"

下面

是我的代碼:

string url = https://translate.google.com/translate_a/single?client=t&sl=en&tl=vi&hl=vi&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss&dt=t&dt=at&ie=UTF-8&oe=UTF-8&otf=1&srcrom=1&ssel=0&tsel=0&kc=5&tk=520987|10880&q=" + keyword; 
var request = (HttpWebRequest)WebRequest.Create(url); 
WebProxy proxy = (WebProxy)WebProxy.GetDefaultProxy(); 
if (proxy.Address != null) 
{ 
    proxy.Credentials = proxy.Credentials = new NetworkCredential("username", "pw"); 
    WebRequest.DefaultWebProxy = new System.Net.WebProxy(proxy.Address, proxy.BypassProxyOnLocal, proxy.BypassList, proxy.Credentials); 
} 

request.Proxy = proxy; 
var postData = ""; 
var data = Encoding.ASCII.GetBytes(postData); 

request.Method = "POST"; 
request.ContentType = "text/html; charset=UTF-8"; 
request.ContentLength = data.Length; 
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36"; 
request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"; 

using (var stream = request.GetRequestStream()) 
{ 
    stream.Write(data, 0, data.Length); 
} 

var response = (HttpWebResponse)request.GetResponse(); 

var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd(); 
return responseString; 

謝謝!

+0

你想從'www.google.com'迴應? – gypsyCoder

+0

我已經用www.google.com試過了。但不是好的:(。謝謝! – tranphu0ng

+0

發佈到根網址的「」是不會起作用的,你真的想要做什麼? –

回答

0

使用您的網址,它不是一個POST請求,這是一個GET請求,並可以這樣進行:

string url = "https://translate.google.com/translate_a/single?client=t&sl=de&tl=en&hl=de&dt=at&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss&dt=t&ie=UTF-8&oe=UTF-8&otf=2&ssel=0&tsel=0&kc=4&tk=767774.885916&q=hallo%20du"; 
var request = (HttpWebRequest)WebRequest.Create(url); 

var response = (HttpWebResponse)request.GetResponse(); 
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd(); 

但是,如果你q應該有另一個值,其他值也必須被改變,否則你會有Error 403告訴你,你沒有權限做你的請求。

使用谷歌翻譯,考慮看看Google Translate API。 在那裏,你可以做你的要求那樣:

https://www.googleapis.com/language/translate/v2?key=YOUR_API_KEY&q=hello%20world&source=en&target=de 

但這是一個PAYD服務...