将C#Web服务参数传递给PHP应用程序

将C#Web服务参数传递给PHP应用程序,c#,php,asp.net,web-services,C#,Php,Asp.net,Web Services,我试图将C#Web服务参数传递给PHP应用程序,但下面的代码并没有给出。实际上,我正在传递用户名和密码xml格式,因为任何好友在传递时都不应该看到该凭证 下面是我的C#Web服务,使用asp.net Web表单按钮单击以重定向PHP应用程序 [WebMethod] public string POSTXml(string username, string password) { WebRequest req = null; WebResponse rsp = null;

我试图将C#Web服务参数传递给PHP应用程序,但下面的代码并没有给出。实际上,我正在传递用户名和密码xml格式,因为任何好友在传递时都不应该看到该凭证

下面是我的C#Web服务,使用asp.net Web表单按钮单击以重定向PHP应用程序

  [WebMethod]
public string POSTXml(string username, string password)
{
    WebRequest req = null;
    WebResponse rsp = null;
    try
    {
        StringBuilder strRequest = new StringBuilder();

        string url = "http://xyz.in/getuser.php/";

        req = WebRequest.Create(url);
        req.Method = "POST";
        req.ContentType = "text/xml";

        StreamWriter writer = new StreamWriter(req.GetRequestStream());
        writer.WriteLine(username,password);
        writer.Close();

        rsp = req.GetResponse();

        var sr = new StreamReader(rsp.GetResponseStream());
        string responseText = sr.ReadToEnd();

        return responseText;

    }
    catch (Exception e)
    {
        throw new Exception("There was a problem sending the message");
    }
}
下面是我的按钮点击代码

  protected void Button2_Click(object sender, EventArgs e)
{

    localhost.WebService objserv1 = new localhost.WebService();
    Label.Text = objserv1.POSTXml("nagapavani", "tech@1234");


}

实际上,当用户单击按钮将一些值传递给web服务时,web服务希望将该值传递给php应用程序。有没有其他方法可以达到这一要求。当我要按按钮时,单击“不去重定向”,并从google获取此代码。

您可以按以下方式发送数据。将其转换为字节数组并写入请求流:

[WebMethod]
public string POSTXml(string username, string password)
{
    WebRequest req = null;
    WebResponse rsp = null;
    try
    {
        string data = "user=" + username + "&password=" + password;
        string url = "http://xyz.in/getuser.php/";

        byte[] buffer = Encoding.ASCII.GetBytes(data);
        HttpWebRequest WebReq = (HttpWebRequest)WebRequest.Create(url);


        WebReq.Method = "POST";
        WebReq.ContentType = "application/x-www-form-urlencoded";
        WebReq.ContentLength = buffer.Length;

        using (Stream PostData = WebReq.GetRequestStream())
        {
            PostData.Write(buffer, 0, buffer.Length);

            HttpWebResponse WebResp = (HttpWebResponse)WebReq.GetResponse();

            using (Stream stream = WebResp.GetResponseStream())
            {
                using (StreamReader strReader = new StreamReader(stream))
                {
                    return strReader.ReadToEnd();                            
                }                        
            }
            WebResp.Close();
       }

    }
    catch (Exception e)
    {
        throw new Exception("There was a problem sending the message");
    }
    return String.Empty;
}

您没有添加返回,请检查“WebService.POSTXml(string,string)”:并非所有代码路径都返回值@JohanIt只是一个示例,您可以在自己的代码中实现它。不仅仅是复制/粘贴。但我想返回变量'result'不会是个问题吧?:)(示例代码已编辑)当我将执行web服务时,请插入您的web服务,并插入两个值并重定向到。@johan您是什么意思?当我单击“获取错误”按钮时:System.web.Services.Protocols.SoapException类型的异常出现在System.web.Services.dll中,但未在用户代码中处理@约翰