C⻠PHPサービスを使用したWeb Service通信例

2313 ワード

注:本例ではWeb Serviceを構築し、SOAP方式を採用し、phpプラグインNuSoapを通じてSOAPサーバを構築する。
 
  

require_once("lib/nusoap.php"); // NuSoap

$server = new soap_server(); // soap
$server->configureWSDL("login_service"); // WSDL
$namespace = "http://www.abcd9.com";
$server->wsdl->schemaTargetNamespace = $namespace; // wsdl http://www.abcd9.com
$server->register( // Web
        'login_verifiy', //
        array('name'=>'xsd:string','pw'=>'xsd:string'),  //
        array('return'=>'xsd:string'),  //
        $namespace, //
        false, // soapaction:
        'rpc', // : rpc or document
        'encoded', // :encoded( ) literal( )
        'A web method of login' //
);       
$POST_DATA = isset($GLOBALS['HTTP_RAW_POST_DATA'])? $GLOBALS['HTTP_RAW_POST_DATA'] : '';               
$server->service($POST_DATA); // soap

function login_verifiy($user,$pw) { // ,
 return 'user:'.$user.' password:'.$pw);
}
?>

 
C铀クライアントの呼び出し:
 
  
[DllImport("kernel32")] // api ini 。
private static extern long GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);

private void Form1_Load(object sender, EventArgs e)
{
    StringBuilder temp = new StringBuilder(256);
    GetPrivateProfileString("system", "url", null, temp, 256, System.IO.Directory.GetCurrentDirectory()+"\\config.ini"); 

    // config.ini ( ) webservice url
    Program.server_url = temp.ToString(); //Program.cs server_url webservice url
}

private void button1_Click(object sender, EventArgs e)
{
    WebReference.login_service l = new WebReference.login_service();

    string s=l.login_verifiy(username.Text, password.Text);

    MessageBox.Show(s);
}

添付config.ini内容:
 
  
[system]
url=http://127.0.0.1:100/