2010-08-25 33 views
1

Je suis en train d'accéder à un site Web via C# en utilisant WebRequest et l'objet WebResponse,arabe WebRequest C#

je me suis connecté sur le site et préservé le cookie pour naviguer plus loin, il, Le problème est que le site est arabe et en quelque sorte j'ai reçu un message formaté du site Web indiquant que mon navigateur ne supporte pas l'arabe.

Peut-être que je peux ajouter quelque chose à l'objet de demande pour assurer le site Web que l'arabe est pris en charge.

Ce code je, s'il vous plaît laissez-moi savoir comment mettre à jour:

string formUrl = "http://www.kuwaitlook.com/Ar/Residential.asp"; 
string formParams = string.Format("Mega={0}", searchTarget); 

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(formUrl); 
req.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1);Accept-Language:ar"; 

req.ContentType = "application/x-www-form-urlencoded"; 
req.Method = "POST"; 
req.Headers.Add("Cookie", cookieHeader); 

byte[] bytes = Encoding.ASCII.GetBytes(formParams); 
req.ContentLength = bytes.Length; 

using (Stream os = req.GetRequestStream()) { 
    os.Write(bytes, 0, bytes.Length); 
} 
WebResponse resp = req.GetResponse(); 

StreamReader streamReader = new StreamReader(resp.GetResponseStream()); 

using (StreamWriter writer = new StreamWriter("text.xml")) { 
    string line; 
    while ((line = streamReader.ReadLine()) != null) { 
     writer.WriteLine(line); 
    } 
} 
+0

Définissez la chaîne de l'agent utilisateur pour inclure le langage arabe. Pourrait résoudre votre problème. –

Répondre

1

Comme Mikael a suggéré d'essayer celui-ci:

HttpWebRequest request=(HttpWebRequest)WebRequest.Create("http://www.yourdomain.com"); 
request.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1);Accept-Language:ar" 
+0

J'ai ajouté le code que j'ai utilisé, s'il vous plaît laissez-moi savoir comment puis-je le mettre à jour –

+0

Vous pouvez contrôler les langues que vous soutenez par la chaîne suivante: "Accept-Language: ar", où ar pour l'arabe. Pour la liste complète des langues, voir: http://www.loc.gov/standards/iso639-2/php/code_list.php –

0

Voici comment vous le faites dans vb. net:

Dim SW As StreamWriter 
Dim ar As System.Text.UTF8Encoding = New System.Text.UTF8Encoding 

Request.ContentLength = ar.GetByteCount(your_string)  ' Here 
SW = New StreamWriter(Request.GetRequestStream(), ar) ' And Here 
SW.Write(your_string)