使用.Net调用Servicenow Web服务

时间:2011-09-30 14:30:42

标签: c# .net web-services servicenow

我试图从.Net调用Service Now的web服务,我可以使它在插入记录时工作正常,但我无法使任何GET工作。这是我的INSERT代码:

public void insertTable(string tableName, string schema, string columnInfo, string shortDesrcipt, string longDescript)
{
    using (ServiceNow_u_database_table tableReference = new ServiceNow_u_database_table())
    {
        insertResponse response = new insertResponse();

        System.Net.ICredentials cred = new System.Net.NetworkCredential(Properties.Settings.Default.UserName, Properties.Settings.Default.Password);
        tableReference.Credentials = cred;

        insert tableInsert = this.getTableData(tableName, schema, columnInfo, shortDesrcipt, longDescript);
        try
        {
            response = tableReference.insert(tableInsert);
        }
        catch (Exception error)
        {
            Console.WriteLine(error.Message);
        }
    }
}

工作正常。以下代码不适用于GET

using (ServiceNow_u_database_table tableReference = new ServiceNow_u_database_table())
{
    ServiceNowExport.com.servicenow.libertydev.u_database_table.getRecords recordGet = new getRecords();
    System.Net.ICredentials cred = new System.Net.NetworkCredential(Properties.Settings.Default.UserName, Properties.Settings.Default.Password);
    tableReference.Credentials = cred;

    recordGet.name = this._tablePrefix + tableName;
    getRecordsResponseGetRecordsResult[] response = tableReference.getRecords(recordGet);
    if (response != null && response.Count() > 0)
    {
        return true;
    }
}

当我运行该代码时,response始终为null。我按照this页上的说明进行操作。

我知道它正在连接,因为如果我终止凭据行,我会收到未经授权的错误。我在这里做错了什么想法?谢谢!

2 个答案:

答案 0 :(得分:8)

来自C#Web服务上的ServiceNow wiki:here

  

如果您收到来自您的网络服务的“空”回复   客户端代码,那么您可能错过了本教程中的步骤   将elementFormDefault设置为“False”...请记住   更改后,重新编译您的代码与WSDL   设置并保存。

可以在以下位置的ServiceNow实例中找到该属性:System 属性>网页服务。将其设置为false,您就不应再这样做了 从getRecords响应中接收null。

以下是该属性的屏幕截图: Screenshot of the image

答案 1 :(得分:0)

如果你有兴趣,我会写一套肥皂类来获取并将一些信息输入servicenow。目前我在工作中需要做的事情非常有限,但应该对任何人都有效。

https://github.com/jeffpatton1971/mod-ServiceNOW

随意查看