好的,所以我似乎找不到合适的Windows Azure示例。我有一个简单的hello world应用程序,它基于this tutorial。我想要自定义输出而不是JSON或XML。所以我创建了我的界面:
[ServiceContract]
public interface IService
{
[OperationContract]
[WebInvoke(UriTemplate = "session/create", Method = "POST")]
string createSession();
}
public class MyService : IService
{
public string createSession()
{
// get access to POST data here: user, pass
string sessionid = Session.Create(user, pass);
return "sessionid=" + sessionid;
}
}
对于我的生活,我似乎无法弄清楚如何访问POST
数据。请帮忙。谢谢!
答案 0 :(得分:1)
如果你有一个HttpContext,可能会有一个具有表单数据的Request对象。我在这个问题上基于ASP.Net标签的一部分,所以如果这是不正确的,那么可能需要处理另一种方式,但它看起来很像我的脑海中的Web服务。
编辑:HttpRequest是具有Form属性的类,如果这是HTTP请求,则该属性应该是POST数据的存储位置。这是System.Web的一部分,所以它应该可以很容易地使用,我记得。
int loop1;
NameValueCollection coll;
//Load Form variables into NameValueCollection variable.
coll=Request.Form;
// Get names of all forms into a string array.
String[] arr1 = coll.AllKeys;
for (loop1 = 0; loop1 < arr1.Length; loop1++)
{
Response.Write("Form: " + arr1[loop1] + "<br>");
}
这假设有一个HttpRequest实例。
WCF Simplified Part 4: Comparing the Request/Reply and One-Way Patterns传入一个参数,这样你的“createSession”方法就必须接收它出现的那些字符串。我已经习惯了ASP.Net世界,那里有一些内置对象,如Request,Response,Server,Application和Session。
是的,如果您确实尝试更改方法签名,因为在最后一个示例中我可以传递参数,但我不知道这是否适用于您的情况。