

VS2019、.net framework4.7.2でEPOのopen patent serviceを試しています。  
[仕様](http://documents.epo.org/projects/babylon/eponet.nsf/0/F3ECDCC915C9BCD8C1258060003AA712/$File/ops_v3.2_documentation_-
_version_1.3.81_en.pdf)を見ながら、アクセストークンは取得できました。

[code]

    request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue(
        "Basic", Convert.ToBase64String(Encoding.ASCII.GetBytes(client_id + ":" + client_secret)));
    request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/x-www-form-urlencoded"));
    var parameters = new Dictionary<string, string>() {
        { "grant_type", "client_credentials" },
    };
    request.Content = new FormUrlEncodedContent(parameters);
    var response = httpClient.SendAsync(request);
    response.Wait();
    string result = response.Result.Content.ReadAsStringAsync().Result;
    
[/code]

次に仕様50ページ辺りを参考にリソースにアクセスしようと、先ほど取得したresultの中からtokenを渡しています。  
この結果、エラーコード400のinvalid_access_tokenが返ってきてしまいます。  
いまいち仕様がよくわからずに作っています。指定の仕方が悪いのでしょうか？  
仕様にあるRequest Body:EP1000000.A1とはHttpRequestMessageのContentにセットしてもいいものでしょうか？

[code]

    HttpClient httpClient = new HttpClient();
    HttpRequestMessage request = new HttpRequestMessage();
    request.Method = HttpMethod.Post;
    request.RequestUri = new Uri("http://ops.epo.org/rest-services/published-data/publication/epodoc/biblio");
    request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer" + token);
    request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/exchange+xml"));
    request.Content = new StringContent("EP1000000.A1");
    var res = httpClient.SendAsync(request);
    res.Wait();
    string result = res.Result.Content.ReadAsStringAsync().Result;
    
[/code]


CC BY-SA 4.0
2019-05-22T10:55:12.083
55168
2020-09-04T01:04:35.550
2019-05-22T12:05:07.223
25725
25725
question
c# oauth rest
C#のWebClinetで渡したアクセストークンが無効になってしまう。


コメントありがとうございます。  
tokenを渡す場合のヘッダー設定を以下に直して動きました。

[code]

    request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Authorization", "Bearer" + token);
    
[/code]

すいません。基本が分かっていなく、ご迷惑おかけしました。


CC BY-SA 4.0
2019-05-22T12:56:04.497
55174
2019-05-22T21:44:19.157
2019-05-22T21:44:19.157
23994
25725
55168
answer