,你需要做的方式。
如果您在C#中使用RESTfull API,可以通過直接向服務發送直接HTTPS調用來完成。
但事情當您使用SOAP API
當你輸入的Web服務程序,它包括以下根據您的申請意向XML代碼在app.config或Web.config文件(Web應用程序變得複雜或獨立應用程序)。
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="ServiceNowSoap">
<security mode="Transport" />
</binding>
<binding name="ServiceNowSoap1" />
</basicHttpBinding>
</bindings>
<client>
<endpoint address="https://XXXXXXXX.service-now.com/service_subscribe_sys_user_list.do?SOAP"
binding="basicHttpBinding" bindingConfiguration="ServiceNowSoap"
contract="ServiceReference1.ServiceNowSoap" name="ServiceNowSoap" />
</client>
</system.serviceModel>
首先,如果您希望檢索一大組記錄,則需要增加最大接收郵件大小的大小。
爲你需要編輯標籤像下面
<binding name="ServiceNowSoap" maxReceivedMessageSize="2000000000">
接下來的部分是增加displayvalue =所有的URL。
我們不能用自己的XML編輯端點url,而是可以刪除URL並將其添加爲關鍵值。但你仍然不能添加URL參數與&標誌你需要的值存儲作爲單獨的按鍵,並結合其withing程序獲取完整URL
最終XML會是這樣
<configuration>
<appSettings>
<add key="serviceNowUrl"
value="https://XXXXXXXX.service-now.com/service_subscribe_sys_user_list.do?"/>
<add key="displayvalue" value="displayvalue=true"/>
<add key="protocol" value="SOAP"/>
</appSettings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="ServiceNowSoap" maxReceivedMessageSize="2000000000">
<security mode="Transport">
<transport clientCredentialType="Basic" proxyCredentialType="Basic"
realm="">
<extendedProtectionPolicy policyEnforcement="Never" />
</transport>
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
<binding name="ServiceNowSoap1" />
</basicHttpBinding>
</bindings>
<client>
<endpoint binding="basicHttpBinding" bindingConfiguration="ServiceNowSoap"
contract="Service_Now_Reference.ServiceNowSoap" name="ServiceNowSoap" />
</client>
</system.serviceModel>
</configuration>
你可以請按如下步驟組裝url:
string url = ConfigurationSettings.AppSettings["serviceNowUrl"];
string protocol = ConfigurationSettings.AppSettings["protocol"];
string displayvalue = ConfigurationSettings.AppSettings["displayvalue"];
System.ServiceModel.EndpointAddress endpoint = new System.ServiceModel.EndpointAddress(string.Format("{0}{1}{2}", url, protocol, displayvalue));
嗨Sandaru,你能提供一些更多的細節嗎?具體的URL是你要求嗎? HTTP請求是什麼樣的?您是否從WSDL生成ServiceNowSoapClient? – Bryan
yah即時通訊使用WSDL。該網址是https://XXXXXXXX.service-now.com/service_subscribe_sys_user_list.do?WSDL – Sandaru
謝謝,仍然可以使用更多的信息來說肯定,但我猜測更新你拉WSDL的URL包括'displayvalue = all'(參考:http://wiki.servicenow.com/?title= Direct_Web_Services#Return_Display_Value_for_Reference_Variables)將有所幫助。如果您可以捕獲您的C#應用程序發送的示例HTTP請求並將其包含在此處的問題中,它也將有所幫助。如果你這樣做,請確保你刪除標題中的任何憑據。 – Bryan