标签: wcf-rest

测试客户端用于测试WCF Rest服务还是仅使用浏览器?

我已经编写了我的第一个休息服务,目前我正在浏览器中测试它们.

是否有测试客户端或某种类型提供额外的功能,或者这是正常的测试方式,即在IE,Firefox等?

rest wcf visual-studio-2010 wcf-rest

3
推荐指数
1
解决办法
2602
查看次数

在REST WCF中读取HttpRequest Body

我在.net 4中运行了一个REST WCF服务,我测试了它正在运行的Web服务,并接受我做的HttpRequest.但是我在尝试访问Web服务中的HttpRequest主体时遇到了问题.我已经尝试使用Fiddler和我的WinForm应用程序发送附加在HttpRequest上的随机大小的数据,我似乎无法在运行时找到任何可以找到我的请求主体的对象.我最初的本能是查看HttpContext.Current.Request.InputStream但该属性的长度为0,所以我试着查看IncomingWebRequestContext该对象甚至没有方法也没有属性来获取HttpRequest的主体.

所以我的问题是,有没有办法在WCF中访问HttpRequest请求体?

PS:请求体内的数据是JSON字符串,对于响应,它也会将响应体内的数据作为JSON字符串返回.

json web-services .net-4.0 httprequest wcf-rest

2
推荐指数
1
解决办法
1万
查看次数

为Rest Web Service创建WCF代理

我有一个复杂的WCF Rest服务,它接受多个输入和对象.我不能简单地通过在Fiddler中进行HTTP POST来调用它,因为有太多的数据要提供(我可以,但它将永远带我).所以我想在代码中使用代理来完成它.有没有办法为.NET 4 WCF Rest服务生成代理?否则,您建议我允许我轻松测试服务?

谢谢.

.net rest wcf wcf-rest

2
推荐指数
1
解决办法
7780
查看次数

WCF WebApi如何将请求URI映射到适当的服务类型/操作?

WCF REST(和WCF WebApi)如何将Uri映射到正确的服务端点?

在WCF WebApi预览4的上下文中:在自定义委托通道内,我想基于传入的HttpRequestMessage.RequestUri找到关联的路由前缀或服务类型.

所以,例如,

RouteTable.Routes.MapServiceRoute<ManagersResource>("employees/managers", config);
RouteTable.Routes.MapServiceRoute<EmployeesResource>("employees", config);
Run Code Online (Sandbox Code Playgroud)

假设有一个请求进入http:// server/employees/John

  1. WCF如何将其映射到正确的端点?

ResourceFactoryProvider实例化时,它已经知道具体的服务类型.我似乎无法追踪Uri和路由表路由之间的解决方案.

非常感谢提前.

wcf wcf-rest wcf-web-api

2
推荐指数
1
解决办法
1193
查看次数

Android GSON反序列化进入列表

我正在尝试将json字符串解析为列表或arraylist。我从为Android项目创建的WCF RESTful服务获得以下json响应

[
    {
        "Class": "Lorem",
        "Company": "Ipsum",
        "Id": "XXXX",
        "Name": "Avent"
    },
    {
        "Class": "Consectetur",
        "Company": "Adipiscing",
        "Id": "YYYYY",
        "Name": "Nulla"
    }
]
Run Code Online (Sandbox Code Playgroud)

我在这里阅读了几个解析gson结果的示例,但是如我所见,我在制定容器类方面遇到了困难。我已经将它读取到Group类中,但无法将其解析为任何List或ArrayList。

小组课:

public class Group {

    private String Id;
    private String Name;
    private String Class;
    private String Company;   
}
Run Code Online (Sandbox Code Playgroud)

组容器类:

public class Groups {
    private List<Group> GRP;
}
Run Code Online (Sandbox Code Playgroud)

gson解析语句:

Groups GRP = gson.fromJson(jsonString, Groups.class);
Run Code Online (Sandbox Code Playgroud)

我确实需要对jsonString进行一些操作,因为它在字符串中显示了一些空格(在逗号后),并且在删除它们之后它开始工作,至少是为了解析为单个元素。不知道这是否会影响任何事情,但我想提一提。

另外,我尝试了

类型listType = new TypeToken>(){} .getType(); gson.toJson(myStrings,listType);

但这似乎也不起作用,我也不知道这对我的情况是否必要。

android wcf-rest

2
推荐指数
1
解决办法
1194
查看次数

Json.net无法反序列化复杂类型列表

我正在使用json.net在IIS托管的restful服务中执行处理我的json反序列化.

首先,这是我正在尝试使用的对象.

[DataContract]
public class CreateSamplesRequest
{
    [DataMember] public Guid SessionId { get; set; }
    [DataMember] public SampleTemplateDTO Template { get; set; }
}
[DataContract]
public class SampleTemplateDTO
{
    [DataMember] public int NumberOfSamples { get; set; }
    [DataMember] public int CompanyId { get; set; }
    [DataMember] public int SampleTypeId { get; set; }
    [DataMember] public HmisDTO Hmis { get; set; }
    [DataMember] public List<AttributeValueDTO> AttributeValues { get; set; }   
}
[DataContract]
public class AttributeValueDTO
{
    [DataMember] public int AttributeId { …
Run Code Online (Sandbox Code Playgroud)

wcf json.net wcf-rest

2
推荐指数
1
解决办法
695
查看次数

如何将DataContract对象作为WCF RESTFUL Web服务的参数发送?

我正在开发一个WCF resful服务,它将基本上从一些移动应用程序中消耗.在POST上我试图发送一个DataContract对象[实际上我必须发送一个对象列表]和另一个单独的id作为字符串.我的问题是,是否可能定义我的函数来接受DataContract对象和单个字符串?

以下是我的代码:接口声明:

[ServiceContract]
    public interface IService1
    {

        [OperationContract]
        [WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json, UriTemplate = "GetDataUsingDataContract/{id}")]
        CompositeType GetDataUsingDataContract(string id, CompositeType composite );


    }

    [DataContract]
    public class CompositeType
    {
        bool boolValue = true;
        string stringValue = "Hello ";

        [DataMember]
        public bool BoolValue
        {
            get { return boolValue; }
            set { boolValue = value; }
        }

        [DataMember]
        public string StringValue
        {
            get { return stringValue; }
            set { stringValue = value; }
        }
    }
Run Code Online (Sandbox Code Playgroud)

功能的实际定义:

public CompositeType GetDataUsingDataContract(string id, CompositeType …
Run Code Online (Sandbox Code Playgroud)

rest wcf json wcf-rest

2
推荐指数
1
解决办法
1万
查看次数

在 WCF REST 服务 POST 方法中处理 Json 请求数据

我正在使用 POST 方法和 OBJECT 作为输入参数创建 REST 服务。而客户端请求无法获得客户端发布的实际 JSON 数据。有什么方法可以从 C# WCF 服务中挖掘 JSON 代码。

我的代码:

namespace ACTService
{
  public class AssortmentService : IAssortmentService
  {
    public void DeleteColor(DeleteColorContarct objdelcolor)
    {
         new Methods.ColorUI().DeleteColorDetails(objdelcolor);
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

和我的界面

namespace ACTService
{
  [ServiceContract]
  public interface IAssortmentService
  {
    [OperationContract]
    [WebInvoke(UriTemplate = "DeleteColor", Method = "POST", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json,BodyStyle=WebMessageBodyStyle.Wrapped)]
    void DeleteColor(DeleteColorContarct objColor);
  }
}
Run Code Online (Sandbox Code Playgroud)

我需要访问其他类文件ColorUI中的JSON格式

c# rest wcf json wcf-rest

2
推荐指数
1
解决办法
2317
查看次数

KISS:简单的C#应用​​程序,它与RESTful Web服务进行通信

遵循KISS原则,我突然意识到以下情况:

  • 在.NET中,您可以使用实体模型框架来包装数据库.
  • 此模型可以通过WCF作为Web服务公开.
  • 此Web服务将具有非常标准化的定义.
  • 可以创建可以使用任何此类RESTful Web服务的客户端应用程序.

我不想重新发明轮子,如果有人已经这样做了我也不会感到惊讶,所以我的问题很简单:有没有人已经创建了一个可以使用RESTful的简单(桌面,而不是web)客户端应用程序基于实体框架的服务,允许用户直接读取和写入此服务的数据?

否则,我只需要自己"发明"这个.:-)


问题是,数据库层和RESTful服务已经完成.RESTful服务只会在开发阶段留在项目中,因为我们可以直接从围绕它构建的Web应用程序中使用数据库层组件.部署Web应用程序时,RESTful服务将不在部署之外.

但是数据库有大量数据可以管理近50个表.在针对本地数据库进行开发时,我们可以直接访问数据库,因此我不需要此工具.部署后,Web应用程序将是访问数据的唯一方法,因此我无法使用此工具.但是我们还有一个测试阶段,数据库存储在本地域之外的另一个系统上,而这个数据库不适用于开发人员.只有管​​理员才能直接访问此数据库,从而使测试更加复杂.

但是,通过RESTful服务,我仍然可以直接访问数据.因此,当某些测试出错时,我可以通过此连接修复数据,或者只是为我本地系统上的测试创建数据副本.还有很多其他功能,甚至可以直接在Excel或XMLSpy中打开表服务的URL来查看内容.但是当我想要写回东西时,我必须编写特殊代码才能做到这一点.允许我访问数据并对其进行修改的通用工具会更容易.由于它是围绕ADO.NET数据服务的通用设置,因此这也应该是合理的.

因此,我可以做到,但希望其他人已经做了类似的事情.但似乎还没有制造这样的工具......

c# entity-framework wcf-rest

0
推荐指数
1
解决办法
1824
查看次数

使用ASP.NET在Azure上托管WCF REST和NET.TCP端点

我正在通过Windows Azure上的ASP.NET应用程序托管我的REST服务.它工作得很完美,但几天前我需要一个角色间通信服务,我建立了我的服务,但我有托管它的问题.

我的Global.asax中的此代码在我的本地Azure开发服务器中运行良好,但它在Azure云中不起作用.

正确托管它们的最佳方法是什么?

Global.asax中:

public class Global : HttpApplication
{
    void Application_Start(object sender, EventArgs e)
    {
        StartNotificationServiceHost();
        RegisterRoutes();
    }

    public ServiceHost ServiceHost { get; private set; }
    private void RegisterRoutes()
    {
        var hostfactory = new WebServiceHostFactory();
        RouteTable.Routes.Add(new ServiceRoute("REST/Companies",hostfactory, typeof(Companies)));
        RouteTable.Routes.Add(new ServiceRoute("REST/Public", hostfactory, typeof(Public)));
        RouteTable.Routes.Add(new ServiceRoute("REST/Users", hostfactory, typeof(Users)));
        RouteTable.Routes.Add(new ServiceRoute("REST/Contacts", hostfactory, typeof(Contacts)));
        RouteTable.Routes.Add(new ServiceRoute("REST/Projects", hostfactory, typeof(Projects)));
        RouteTable.Routes.Add(new ServiceRoute("REST/Instances", hostfactory, typeof(Instances)));
        RouteTable.Routes.Add(new ServiceRoute("REST/Activity", hostfactory, typeof(Activity)));
        RouteTable.Routes.Add(new ServiceRoute("REST/Search", hostfactory, typeof(Search)));
        RouteTable.Routes.Add(new ServiceRoute("REST/Tasks", hostfactory, typeof(Tasks)));
        RouteTable.Routes.Add(new ServiceRoute("REST/Documents", hostfactory, typeof(Documents)));
    }
    private void StartNotificationServiceHost() …
Run Code Online (Sandbox Code Playgroud)

internal azure endpoint net.tcp wcf-rest

0
推荐指数
1
解决办法
2384
查看次数

返回记录总数

我正在使用 WCF 休息服务,我想返回总记录数,就像我们在 webapi 或 Breeze 中拥有内联计数一样。

我在WCF中的方法是

   [WebGet(UriTemplate = "GiveMeNamesOfStudents", ResponseFormat = WebMessageFormat.Json)]
    public List<MyDataClass> GiveMeNamesOfStudentsList()
    {
        var returnData = (from myentity in myEntityRepository.AsQueryable()
                          select new MyDataClass
                            {
                                Id = myentity.Id,
                                Name = myentity.Name
                            }).Skip(PageSize * PageNo).Take(PageSize).ToList();
        return returnData;
    }
Run Code Online (Sandbox Code Playgroud)

如何返回实际数据的总记录数和数据?

c# linq wcf entity-framework wcf-rest

0
推荐指数
1
解决办法
3718
查看次数