簡體   English   中英

OData Simple.OData.Client V3發送其他請求

[英]OData Simple.OData.Client V3 sends other request

我正在使用Simple.OData.Client V3從遠程托管的odata服務中獲取一些數據。 這是我在做什么,但由於未知原因,odata客戶端正在發送另一個請求

OData客戶端初始化

public ODataClient CreateClient(bool isPost = true)
{
    var uri = new Uri(ServiceAddress);
    return new ODataClient(new ODataClientSettings(uri)
    {
        Credentials = new NetworkCredential(UserName, Password),
        PayloadFormat = !isPost ? ODataPayloadFormat.Json : ODataPayloadFormat.Atom
    });
}

獲取請求

public async Task<GetCustomersResponse> GetCustomers()
{
    var client = CreateClient(false);

    var x = ODataDynamic.Expression;
    var response = await client.For("Catalog_Контрагенты").Top(10).FindEntriesAsync();

    var raw = JsonConvert.SerializeObject(response).ToString();
    var obj = JsonConvert.DeserializeObject<List<CustomerItem>>(raw);

    return new GetCustomersResponse()
    {
        Items = obj
    };
}

而不是發送

http://odataservice/Catalog_Контрагенты

它發送

http://odataservice/Catalog_АвансовыйОтчетПрисоединенныеФайлы

我也嘗試過以這種方式發送請求,它可以正常工作

public async Task<GetCustomersResponse> GetCustomers()
{
    var client = CreateClient(false);
    var response = await client.FindEntriesAsync("Catalog_Контрагенты?$top=10");            

    var raw = JsonConvert.SerializeObject(response).ToString();
    var obj = JsonConvert.DeserializeObject<List<CustomerItem>>(raw);
    return new GetCustomersResponse()
    {
        Items = obj
    };
}

但我不了解以前的示例出了什么問題。

當我嘗試更新或添加新客戶時,也會發生同樣的事情。它發送其他請求。

更新1

發送錯誤請求時,這是Fidller請求

GET http://hostname/odata/standard.odata/Catalog_%D0%90%D0%B2%D0%B0%D0%BD%D1%81%D0%BE%D0%B2%D1%8B%D0%B9%D0%9E%D1%82%D1%87%D0%B5%D1%82%D0%9F%D1%80%D0%B8%D1%81%D0%BE%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5%D0%A4%D0%B0%D0%B9%D0%BB%D1%8B?$top=10 HTTP/1.1
Accept: application/json, application/xml, application/text
Prefer: return-no-content
Authorization: Basic d2FuZGlvOjEyMzQ=
Host: hostname

響應

HTTP/1.1 200 OK
Content-Length: 185
Content-Type: application/json;charset=utf-8
Server: Microsoft-IIS/7.5
DataServiceVersion: 3.0
X-Powered-By: ASP.NET
Date: Thu, 05 May 2016 06:58:27 GMT

{
"odata.metadata": "http://hostname/odata/standard.odata/$metadata#Catalog_АвансовыйОтчетПрисоединенныеФайлы",
"value": []
}

這是可以正常工作的請求

GET http://hostname/odata/standard.odata/Catalog_%D0%9A%D0%BE%D0%BD%D1%82%D1%80%D0%B0%D0%B3%D0%B5%D0%BD%D1%82%D1%8B?$top=10 HTTP/1.1
Accept: application/json, application/xml, application/text
Prefer: return-no-content
Authorization: Basic d2FuZGlvOjEyMzQ=
Host: hostname

響應

HTTP/1.1 200 OK
Content-Length: 28626
Content-Type: application/json;charset=utf-8
Server: Microsoft-IIS/7.5
DataServiceVersion: 3.0
X-Powered-By: ASP.NET
Date: Thu, 05 May 2016 09:40:21 GMT

{
"odata.metadata": "http://hostname/odata/standard.odata/$metadata#Catalog_Контрагенты",
"value": [{
"Ref_Key": "f9210ba9-cbf8-11e1-8023-00155d01bf09",
"DataVersion": "AAAAAAAki8I=",
"DeletionMark": false,
"Parent_Key": "ca28c1de-af9e-11e1-a90b-00155d01bf04",
"IsFolder": false,
"Code": "002879   ",
"Description": "შპს პრაიმ ქემიქალს1",
"ИНН": "404867569",
"КодПоОКПО": "",
"КПП": "",
"НаименованиеПолное": "შპს პრაიმ ქემიქალს",
"БанковскийСчетПоУмолчанию_Key": "00000000-0000-0000-0000-000000000000",
"ДоговорПоУмолчанию_Key": "f9210baa-cbf8-11e1-8023-00155d01bf09",
"КонтактноеЛицо_Key": "00000000-0000-0000-0000-000000000000",
"ФизическоеЛицо_Key": "00000000-0000-0000-0000-000000000000",
"СчетУчетаРасчетовСПокупателем_Key": "552c3f13-4ae6-48a3-a9e2-5ce660958242",
"СчетУчетаАвансовПокупателя_Key": "d38b5a6a-be8b-4c2b-8702-57ea8e02e3e6",
"СчетУчетаРасчетовСПоставщиком_Key": "9d195613-e9b0-4dd9-959d-72fd653ac7fc",
"СчетУчетаАвансовПоставщику_Key": "5060faf9-602e-478c-be88-7145c6f48586",
"Ответственный_Key": "00000000-0000-0000-0000-000000000000",
"Комментарий": "",
"ВестиРасчетыПоДоговорам": true,
"ВестиРасчетыПоДокументам": true,
"ВестиРасчетыПоЗаказам": true,
"ВестиУчетОплатыПоСчетам": true,
"ЮрФизЛицо": "ЮрЛицо",
"АдресЭП": "",
"Нерезидент": false,
"КонтактнаяИнформация": [],
"ДополнительныеРеквизиты": [],
"Parent@navigationLinkUrl": "Catalog_Контрагенты(guid'f9210ba9-cbf8-11e1-8023-00155d01bf09')/Parent",
"ДоговорПоУмолчанию@navigationLinkUrl": "Catalog_Контрагенты(guid'f9210ba9-cbf8-11e1-8023-00155d01bf09')/ДоговорПоУмолчанию",
"СчетУчетаРасчетовСПокупателем@navigationLinkUrl": "Catalog_Контрагенты(guid'f9210ba9-cbf8-11e1-8023-00155d01bf09')/СчетУчетаРасчетовСПокупателем",
"СчетУчетаАвансовПокупателя@navigationLinkUrl": "Catalog_Контрагенты(guid'f9210ba9-cbf8-11e1-8023-00155d01bf09')/СчетУчетаАвансовПокупателя",
"СчетУчетаРасчетовСПоставщиком@navigationLinkUrl": "Catalog_Контрагенты(guid'f9210ba9-cbf8-11e1-8023-00155d01bf09')/СчетУчетаРасчетовСПоставщиком",
"СчетУчетаАвансовПоставщику@navigationLinkUrl": "Catalog_Контрагенты(guid'f9210ba9-cbf8-11e1-8023-00155d01bf09')/СчетУчетаАвансовПоставщику"
}

元數據信息

Simple.OData.Client具有與非拉丁詞相關的錯誤,並將在適配器中修復。

這是odata客戶端發送錯誤請求的問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM