【发布时间】:2013-12-30 16:17:43
【问题描述】:
我有一个大学项目,我应该在其中实现一个使用 Web 服务的 java 驱动的网站:一些将被创建为 servlet,而另一些则应该被创建为 .NET“servlet”。我创建了可以称为 /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>
/// Summary description for Service1
/// </summary>
[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 约定。 提前谢谢你。
【问题讨论】:
-
ASMX 是一项遗留技术,不应用于新开发。 WCF 或 ASP.NET Web API 应用于 Web 服务客户端和服务器的所有新开发。一个提示:微软已经在 MSDN 上停用了ASMX Forum。
-
感谢您提供的信息。最大的问题是微软过快地淘汰技术。对于像我这样的新手来说,很难找到一个关于新主题的好教程。另外,我对 Microsoft 网络技术并不是很感兴趣,但我有一份大学作业,我必须遵守规则。
-
WCF 不是新技术。它从 2006 年就开始了。你们的大学远远落后于时代。
-
也许你每天都在处理 WCF 主题。但对我来说,也许我的大学这个话题仍然很热门:))。如果我可以这么说,大学课程驱使我们从宇宙的开始。 :D.
-
不要轻视 Señor Saunders,但 Nucandrei 是正确的。如果你问我,WCF 很难在没有性能提升的情况下配置。虽然有时 10% 很关键,但大多数时候,ASMX 的配置要宽容得多。
标签: c# web-services post get asmx