将C#Web服务参数传递给PHP应用程序
我试图将C#Web服务参数传递给PHP应用程序,但下面的代码并没有给出。实际上,我正在传递用户名和密码xml格式,因为任何好友在传递时都不应该看到该凭证 下面是我的C#Web服务,使用asp.net 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;
[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中,但未在用户代码中处理@约翰