我有一个大学项目,我应该实现一个使用Web服务的java驱动的网站:一些将作为servlet创建,另一些应该创建为.NET"servlets".我创建了可以被称为/ loginservice/username ="__________"&md5 ="____________"的java servlet.都好.现在我必须在.NET中实现另一个服务.我创建了一个ASP.NET Web服务应用程序,但这种类型的应用程序使用POST而不是GET.我发现这可以通过添加来改变
[ScriptMethod(UseHttpGet=true)]
但问题是我不能像在Java中那样传递参数.无法在任何地方使用POST,因为我不想在Java中重写代码.
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Services; using System.Web.Script.Services; namespace t5_services { ////// Summary description for Service1 /// [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. // [System.Web.Script.Services.ScriptService] public class Service1 : System.Web.Services.WebService { [WebMethod] public string HelloWorld() { return "Hello World"; } [WebMethod] [ScriptMethod(UseHttpGet=true)] public string Package(String packagename, String lastname) { return "Hello " + packagename + ": " + lastname; } } }
这是C#中的代码如果我使用浏览器并手动插入值,则一切正常.
但我不能使用GET惯例.先感谢您.
我终于解决了这个问题
[WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)]
并添加
<webServices> <protocols> <add name="HttpGet"/> <add name="HttpPost"/> </protocols> </webServices>
到Web.config
现在我可以使用调用该服务
http://localhost:2586/Service1.asm/HelloWorld?parameter1=abc¶meter2=cde