2017-05-18 5 views
0

WindowsアプリケーションからWebサーバーにデータを送信したい。 まず、URLパラメータでデータを送信していましたが、URLの長さの制限により、大きなデータで失敗していました。それから私はファイルのアップロードのようなデータを送信しようとしましたが、私のデータはファイルではありません。非常に長い文字列(約4k文字)です。 インターネット上のファイルアップロードチュートリアルでFileStreamをバイト配列に置き換えましたが、サーバ側の$_FILES変数は空の配列です。 ここに私のコードです。HTTPWebRequestファイル

Sub sendData(ByVal data As String) 

    Dim enc_data As String = EncryptRJ256(data) 
    Dim byteData() As Byte = Encoding.UTF8.GetBytes(enc_data) 

    Dim postReq As HttpWebRequest = WebRequest.Create("http://example.com") 
    postReq.Method = "POST" 
    postReq.KeepAlive = True 
    postReq.AllowWriteStreamBuffering = True 
    postReq.ContentLength = byteData.Length 

    Dim postreqstream As Stream = postReq.GetRequestStream() 
    postreqstream.Write(byteData, 0, byteData.Length) 
    postreqstream.Close() 


    Dim postresponse As HttpWebResponse 
    postresponse = postReq.GetResponse() 
    Dim postreqreader As New StreamReader(postresponse.GetResponseStream()) 

    Dim thepage As String = postreqreader.ReadToEnd 
    File.WriteAllText("C:\Users\kenar\Desktop\response.txt", thepage) 
End Sub 

サーバー側には何も表示されません。私はApache Webサーバーを使用して、$_FILESのPHPスクリプトの変数をチェックしています。

答えて

0

ファイルをアップロードしているようには見えませんが、$ _POSTの代わりにデータをチェックすることをお勧めします。私は$ _GETをチェックする前に推測しています。ファイルとして送信する場合は、適切なコンテンツタイプも設定する必要があります。