【问题标题】:Web Services Client ApplicationWeb 服务客户端应用程序
【发布时间】:2012-02-04 12:49:48
【问题描述】:

我叫 Edward Chairez,目前是西德克萨斯 A&M 大学的学生。无论如何,我的问题是,如何在 ASP.net 中创建一个 c# Web 服务客户端应用程序。我在一家采集风数据的研究所工作;从https://www.hobolink.com/ 检索这些数据,然后将这些数据转换为带有图表、平均值等的 X-cel 表……但最近,我的老板问我是否准备好进行一个具有挑战性的项目,我说是的。该项目包括创建一个 Web 服务客户端应用程序以从 HOBOlink 服务器检索数据,该服务器从 Onset HOBO 数据记录器中检索数据。

HOBOlink® 网络服务 API 是一个应用程序编程接口,使组织能够轻松地将来自 Onset HOBOlink 网络服务器的能源和环境数据与自定义软件应用程序集成。它将被一系列用户使用,从建筑能源仪表板供应商到希望将来自 Onset HOBO® U30 监控系统的实时天气数据嵌入基于 Web 的门户的开发人员。 HOBOlink Web 服务 API 支持简单对象访问协议 (SOAP) 和具象状态传输 (REST) 架构。数据可以通过 Web 服务以 CSV 格式或 SensorML(传感器模型语言)格式获取,具体取决于用户选择的 Web 服务类型。

我的问题是,如何在 C# 中创建这个应用程序? 我是否使用 Visual Studio 来创建它,如果是,我该怎么做,是控制台应用程序吗?

这是我从 Hobo 开发人员那里得到的一些代码,当然没有一个凭据是正确的:

using System;
using System.Collections.Generic;
using System.Text;

namespace TestWebServices2
{
    class TestSensorObservationServiceFull
    {

        static void Main(string[] args)
        {

            // Development            
            SensorObservationService stub = new SensorObservationService("https://webservice.hobolink.com:missing some information here due to rules and privacy");

            // Stable
            //SensorObservationService stub = new SensorObservationService("https://webservice.hobolink.com/axis2/services/SensorObservationService");

            SosGetObservationRequestFull req = new SosGetObservationRequestFull();
            req.auth = new Authentication();
            req.auth.token = "privacy";
            req.auth.user = "privacy";
            req.auth.password = "privacy";
            string[] serialNumbers = {"privacy"};
            req.serialNumbers = serialNumbers;
            req.timePeriod = new TemporalFilter();
            req.timePeriod.@operator = "During";
            req.timePeriod.time = new TimePeriod();
            req.timePeriod.time.start = new DateTime(2009, 3, 3, 13, 0, 0);
            req.timePeriod.time.end = new DateTime(2009, 3, 3, 14, 0, 0);
            req.timePeriod.time.startSpecified = true;
            req.timePeriod.time.endSpecified = true;
            try
            {
                String result = stub.GetObservationFull(req);
                Console.WriteLine("The result is: " + result);
            }
            catch (Exception e)
            {
                Console.WriteLine("Error: " + e);
            }
        }

    }
}

请帮助我并指导我完成这些步骤,我不需要做这个项目,但我相信这对我来说会是一次很棒的经历!

谢谢

【问题讨论】:

  • 你拥有的代码......它工作..?如果是这样,那么我的下一个问题是您要如何使用该代码或让其他客户端通过客户端使用该代码我的意思是应用程序..如果您想要 Web 服务..、Windows 服务、Win Forms App、Web Forms App、Silverlight WPF ..ect ...如果您有现有的 Web 服务或创建新的 Web 服务,您仍然可以使用该服务.. 使用我的意思是添加对您的项目的引用以访问它的公共功能或 Web 方法 ps 我很自豪帮助我的德克萨斯同胞..lol 我在普莱诺
  • 您有在 .net 上进行应用程序开发的实际经验吗?如果没有,我建议从更简单的练习开始。在没有基本经验的情况下针对 Web 服务进行编程可能会非常痛苦,尤其是当某些事情没有按预期工作时,您必须跨服务边界进行调试
  • DJ KRAZE,我正在等待 Visual Studios 完成下载,因为这台计算机上没有它。一旦完成,我将测试这段代码,我今天也刚拿到。我会告诉你是否适合我的德克萨斯同胞。至于第二个问题,现在我只想在 Web 表单或控制台应用程序中对其进行测试,很简单。但是一旦这个测试完成并且我获得了更多经验,该项目将不得不看起来像 hobolink.com 但我的老板希望我添加其他内容。
  • Dennis,我确实有在 .net 上进行应用程序开发的经验,我在学校为一些项目做过几个网站,所以如果你想帮助我,我会很感激你的帮助。跨度>
  • OK,于是我在Visual Studios中新建了一个项目,file->new->project->Console Application,这段代码不会显示任何错误,但是记住这是主类,在另一个类,我定义了我在这个类中使用的对象,我收到错误消息,“命名空间 System.Web 中的类型或命名空间名称“服务”不存在,您是否缺少程序集引用。这是我在课堂上使用的一些代码:

标签: c# web-services


【解决方案1】:

是否有可能删除了某些引用?或者顶部的一些 Using 语句被删除了?无论您是否删除它们,它们都已消失。尝试将它们添加回来。您需要 System.web。如果这不起作用,请尝试将所有项目的“目标框架”设置为相同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-10
    • 1970-01-01
    • 1970-01-01
    • 2014-09-04
    相关资源
    最近更新 更多