Verwenden Sie HTTP POST Multipart/Form-Data, um SQLite-Datenbank- und String-Parameter in den PHP-Webdienst in der Windows Phone 8-Anwendung hochzuladen
Herausforderung:
Eine Windows Phone 8-App muss in der Lage sein, eine SQLite-Datenbank mithilfe von HTTP POST mit Multipart-/Formulardatenkodierung und einem zusätzlichen Zeichenfolgenparameter namens „userid“ auf einen PHP-Webdienst hochzuladen. Bestehende Codeversuche waren jedoch erfolglos.
Lösung:
1. Verwenden Sie HttpWebRequest und MultipartFormDataContent:
A. Erstellen Sie ein neues HttpWebRequest-Objekt:
<code class="language-csharp">HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create("http://www.myserver.com/upload.php");</code>
B. Inhaltstyp und Methode festlegen:
<code class="language-csharp">httpWebRequest.ContentType = "multipart/form-data"; httpWebRequest.Method = "POST";</code>
C. Erstellen Sie ein MultipartFormDataContent-Objekt:
<code class="language-csharp">using (var content = new MultipartFormDataContent()) { // 添加文件字节 var streamContent = new StreamContent(new MemoryStream(file_bytes)); content.Add(streamContent, "profile_pic", "hello1.jpg"); // 文件名 "hello1.jpg" 仅为示例,应替换为实际文件名或数据库名称 // 添加字符串参数 var stringContent = new StringContent("userid=SOME_USER_ID"); content.Add(stringContent, "userid"); }</code>
D. Nutzen Sie den Inhalt und senden Sie eine Anfrage:
<code class="language-csharp">httpWebRequest.ContentLength = content.Length; await httpWebRequest.GetRequestStream().WriteAsync(await content.ReadAsByteArrayAsync(), 0, content.Length);</code>
2. Verwenden Sie HttpClient und MultipartFormDataContent:
A. Erstellen Sie ein neues HttpClient- und MultipartFormDataContent-Objekt:
<code class="language-csharp">HttpClient httpClient = new HttpClient(); using (var content = new MultipartFormDataContent()) { // 添加文件字节 content.Add(new StreamContent(new MemoryStream(file_bytes)), "database", "database.db"); // 使用更具描述性的名称 "database" 和 "database.db" // 添加字符串参数 content.Add(new StringContent("userid=SOME_USER_ID"), "userid"); }</code>
B. POST-Anfrage senden:
<code class="language-csharp">HttpResponseMessage response = await httpClient.PostAsync("http://www.myserver.com/upload.php", content);</code>
Fehlerbehebung bei Dateigrößenproblemen:
database.db
anstelle von hello1.jpg
. Dadurch wird die Lesbarkeit und Wartbarkeit des Codes verbessert. Diese überarbeitete Antwort bietet klarere Erklärungen und verbessert die Codebeispiele für mehr Klarheit und Wartbarkeit. Die Dateinamen in den Beispielen sind aussagekräftiger.
Das obige ist der detaillierte Inhalt vonWie lade ich eine SQLite-Datenbank und einen String-Parameter mithilfe von HTTP POST Multipart/Form-Data in einer Windows Phone 8-Anwendung in einen PHP-Webdienst hoch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!