Bonjour, au fait, j'ai un petit problème de transfert de fichier ( je veux envoyer un fichier en post avec HttpWebRequest )
j'ai les données suivantes :
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 string path = csv.path; // string de l'url interne de mon fichier ( son emplacement sur le téléphone ) string content = csv.content; //( le contenu en string du fichier ) string urlPost = csv.urlPost; //( l'url du serveur ou je dois poster le fichier)
J'arrive à appeller le serveur, j'ai bien une réponse provenant de sa part, mais, le fichier n'est jamais transféré...
ah, et je ne veux pas utiliser la librairie "RestSharp" .
Voici mon code :
dans la fonction GetRequestStreamCallback(), j'ai remplacé mon code par "// transmitted file ? "
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 public void SentPostReport() { Uri uri = new Uri(csv.urlPost); //Url is string url string boundary = "----------------------------" + DateTime.Now.Ticks.ToString("x"); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri); request.ContentType = "multipart/form-data; boundary=" + boundary; request.Method = "POST"; request.BeginGetRequestStream(new AsyncCallback(GetRequestStreamCallback), request); } private void GetRequestStreamCallback(IAsyncResult asynchronousResult) { HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState; // End the operation Stream postStream = request.EndGetRequestStream(asynchronousResult); // My File content and path. string pathReportFile = csv.path; string CsvContent = csv.content; // Transmitted The File ???? postStream.Close(); // Start the asynchronous operation to get the response request.BeginGetResponse(new AsyncCallback(GetResponseCallback), request); } private static void GetResponseCallback(IAsyncResult asynchronousResult) { HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState; // End the operation HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult); Stream streamResponse = response.GetResponseStream(); StreamReader streamRead = new StreamReader(streamResponse); string responseString = streamRead.ReadLine(); //DEBUG => affiche le résultat de la requête. Debug.WriteLine(responseString); // Close the stream object streamResponse.Close(); streamRead.Close(); // Release the HttpWebResponse response.Close(); }
Ca doit être ici ( à moins que je ne me trompe ), que le transfert doit s'effectuer.
J'ai déjà essayer avec ce bout de code :
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 byte[] byteArray = Encoding.UTF8.GetBytes(CsvContent); postStream.Write(byteArray, 0, byteArray.Length);
et d'autres trouvé sur divers forum, mais je n'ai jamais réussis à transférer mon fichier.
Avez vous une idée de comment est-ce que je pourrais transférer mon fichier sur mon serveur à partir de ces indications ??
j'ai essayé pas mal de choses, mais il s'avère que HttpWebRequest sous WP, ne possède pas toutes les méthodes d'un HttpWebRequest "normal"....
Par avance, Merci.
Partager