2011-10-23 11 views
0

私はPHPスクリプトに変数として投稿を送る必要があるプロジェクトに取り組んでいます。POST経由でPHPにC#変数を送信

C#では、文字列変数を設定するためのいくつかのメソッドを呼び出します。これをPHPスクリプトにポストする必要があります。これにより、PHPスクリプトは変数のデータを使用できます。

私はこれをやってみることができますが、私はgoogleを試しましたが、それらはすべて少し複雑に見えるし、PHPからデータを取得する方法もあります。

私が知る必要があるのは、スクリプトにデータを投稿する方法であり、PHPスクリプトが行ったことをC#で読み込む方法ではありません。

ご協力いただきありがとうございます。

更新 私が達成したいと思っていることについては、自分自身についてよく説明したとは思いません。

これは、文字列形式のデータをポスト経由でPHPページに送信するためのものです。私はその後、ユーザーのWebブラウザにスクリプトを読み込み、PHPページを見ることができます。そして、PHPページからフォームを送信すると、送信されたポストの情報を使用できます。以下は

  1. ユーザーがC#プログラムにボタンを押す
  2. C#プログラムは、文字列変数に
  3. のC#を設定し、何が起こるかのステップバイステップで同じ
  4. PHPページにポストを送信phpページがユーザのブラウザに読み込まれます
  5. ページが読み込まれると、データを使用できるように、データをc#から変数に処理します
  6. ユーザーがフォームを送信し、処理後のデータは、これはもう少し理にかなって

希望のポストデータ形式と一緒に使用されている、それは私が、私はC#はPHPスクリプトが何をやっていた返すようにしたくなかったと言った理由ですユーザがPHPページを操作できる必要があるためです。

+0

をあなたはそれを行うにはWebRequestクラス/にWebResponseを使用することができます。 – eugeneK

+0

は、無関係なphpタグを削除しました。相手側の言語は問題ではありません。通常のHTTPコールです。そして、あなたは、あなたのプログラムの外にどこでも変数を送ることはできません。単に文字列を送ることができます。 –

答えて

1

はこれをチェックしてください:

public static string Post(string service, IDictionary<string, string> objects) 
    { 
     // Create a request using a URL that can receive a post. 
     WebRequest request = WebRequest.Create(ServiceAdress+service+".php"); 
     // Set the Method property of the request to POST. 
     request.Method = "POST"; 
     // Create POST data and convert it to a byte array. 

     StringBuilder b= new StringBuilder(); 
     foreach(KeyValuePair<string,string> o in objects) 
      b.Append(HttpUtility.UrlEncode(o.Key)).Append("=").Append(HttpUtility.UrlEncode(o.Value??"")).Append("&"); 
     if (PHPSESSID != null) 
      b.Append("PHPSESSID=").Append(PHPSESSID).Append('&'); 

     string postData = b.ToString(0, b.Length - 1); 
     byte[] byteArray = Encoding.UTF8.GetBytes(postData); 
     request.ContentType = "application/x-www-form-urlencoded"; 
     request.ContentLength = byteArray.Length; 
     Stream dataStream = request.GetRequestStream(); 
     dataStream.Write(byteArray, 0, byteArray.Length); 
     dataStream.Close(); 
     WebResponse response = request.GetResponse(); 

     if (((HttpWebResponse)response).StatusCode != HttpStatusCode.OK) 
      return null; 

     dataStream = response.GetResponseStream(); 
     StreamReader reader = new StreamReader(dataStream); 
     string responseFromServer = reader.ReadToEnd(); 
     Console.WriteLine(responseFromServer); 
     reader.Close(); 

     dataStream.Close(); 
     response.Close(); 
     return responseFromServer; 
    } 
関連する問題