我对使用WCF有一些了解,但我不知道如何构建它并能够从HTML-POST接收数据。
在我的示例中,Html是这样的:
<html>
<body>
<form method="POST" action="#">
Name: <input type="text" id="txtName" value="" /><br />
Age: <input type="text" id="txtAge" value="" /><br />
Address:<input type="text" id="txtAddress" value="" /><br />
<input type="submit" value="Send" />
</form>
</body
</html>
我的WCF里面是:
namespace WCF
{
[ServiceContract]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
public class User
{
WebInvoke(UriTemplate = "", Method = "POST")]
public DataFromHTMLPost(UserData instance)
{
throw new NotImplementedException();
}
}
}
有人可以就如何将数据从HTML-POST传递给webservice提出一些建议吗? 或者给我一些链接作为参考。非常感谢!
答案 0 :(得分:0)
您需要从后面的代码中获取数据,然后将其传递给Web服务。
您可以在每个输入字段中添加runat =“server”,然后直接获取数据
txtName.Text
或者您可以通过
获取所有发布的数据NameValueCollection nvc = Request.Form;
String name = nvc["txtName"];
然后只需调用我认为您已在项目中添加为服务引用的Web服务?
UPDATE(自从学习访问.NET WCF的PHP客户端)
获取发布数据时请执行以下操作:
$item = $_POST['item'];
item是输入字段的名称。
连接到WCF的PHP代码(使用JSON)
/**
* @param $service name of JSON service to call
* @return string url in string
*/
function request_Url( $service )
{
return 'http://api.domain.com/api.svc'.'/'.$service
}
/**
*
* @return array|false Contest List or false on failure
*/
function get_contestList() {
$jsonStr = json_decode(file_get_contents($this->request_Url('MethodName')), TRUE);
return $jsonStr;
}
在WCF中,您需要将方法签名更改为
[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Json,
RequestFormat = WebMessageFormat.Json,
UriTemplate = "/MethodName")]
public String MethodName()
{
}