質問編集履歴
9
言葉の間違い再修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -148,7 +148,7 @@
|
|
148
148
|

|
149
149
|
AspxAutoDetectCookieSupportの値が1として保存されているようです。
|
150
150
|
|
151
|
-
試しに、これを削除して、JavascriptやREST Clientツールで
|
151
|
+
試しに、これを削除して、JavascriptやREST ClientツールでGETしてみると、見事にエラーになります。
|
152
152
|
ただ、このときに再度AspxAutoDetectCookieSupport=1 が保存され、2回目以降はエラーにならないようです。
|
153
153
|
|
154
154
|
■REST Client でのPOST実行結果
|
8
言葉の間違いを修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -125,7 +125,7 @@
|
|
125
125
|
eripong さん
|
126
126
|
|
127
127
|
貴重な情報ありがとうございます。
|
128
|
-
セッションIDの受渡のために、クッキーを使うかどうかの設定の話だと思うんですが、私の知識では、いまいち細かいしくみがわか
|
128
|
+
セッションIDの受渡のために、クッキーを使うかどうかの設定の話だと思うんですが、私の知識では、いまいち細かいしくみがわかりません。ただ、これを機に多少とも勉強させていただきます。
|
129
129
|
|
130
130
|
最低限の私の知識で理解できる範囲で、以下いろいろやってみました。
|
131
131
|
|
@@ -148,7 +148,7 @@
|
|
148
148
|

|
149
149
|
AspxAutoDetectCookieSupportの値が1として保存されているようです。
|
150
150
|
|
151
|
-
試しに、これを削除して、JavascriptやREST Clientツールで
|
151
|
+
試しに、これを削除して、JavascriptやREST ClientツールでPOSTしてみると、見事にエラーになります。
|
152
152
|
ただ、このときに再度AspxAutoDetectCookieSupport=1 が保存され、2回目以降はエラーにならないようです。
|
153
153
|
|
154
154
|
■REST Client でのPOST実行結果
|
7
補足内容をさらに追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -118,4 +118,45 @@
|
|
118
118
|
Content-Type: application/x-www-form-urlencoded
|
119
119
|
Content-Length: 10
|
120
120
|
}}
|
121
|
-
---------------------------------------------------------------------
|
121
|
+
---------------------------------------------------------------------
|
122
|
+
---
|
123
|
+
###[その後の調査]
|
124
|
+
|
125
|
+
eripong さん
|
126
|
+
|
127
|
+
貴重な情報ありがとうございます。
|
128
|
+
セッションIDの受渡のために、クッキーを使うかどうかの設定の話だと思うんですが、私の知識では、いまいち細かいしくみがわかrかりません。ただ、これを機に多少とも勉強させていただきます。
|
129
|
+
|
130
|
+
最低限の私の知識で理解できる範囲で、以下いろいろやってみました。
|
131
|
+
|
132
|
+
■まず、cookieless の設定による実行結果です。(○がPOST成功)
|
133
|
+
× UseUri
|
134
|
+
○ UseCookies
|
135
|
+
× AutoDetect
|
136
|
+
○ UseDeviceProfile
|
137
|
+
|
138
|
+
おっしゃるように、UseCookiesだとうまくいくようで、UseDeviceProfileでも大丈夫みたいです。
|
139
|
+
|
140
|
+
つまり、設定としては、
|
141
|
+
- <sessionState mode="Off" />
|
142
|
+
- <sessionState cookieless="UseCookies"/>
|
143
|
+
- <sessionState cookieless="UseDeviceProfile"/>
|
144
|
+
のいずれかだとうまくいくということになります。
|
145
|
+
|
146
|
+
|
147
|
+
■次に、Chromeのクッキーの状態を見てみました。
|
148
|
+

|
149
|
+
AspxAutoDetectCookieSupportの値が1として保存されているようです。
|
150
|
+
|
151
|
+
試しに、これを削除して、JavascriptやREST ClientツールでGETしてみると、見事にエラーになります。
|
152
|
+
ただ、このときに再度AspxAutoDetectCookieSupport=1 が保存され、2回目以降はエラーにならないようです。
|
153
|
+
|
154
|
+
■REST Client でのPOST実行結果
|
155
|
+
各処理のリクエストの内容を細かく調べる方法がわからないので、とりあえず情報として載せておきます。
|
156
|
+
|
157
|
+
以下は、REST Client でPOSTに失敗した時の状況です。
|
158
|
+

|
159
|
+
POST時に、AspxAutoDetectCookieSupport=1にリダイレクトしてるということでしょうか。その結果「405 Method Not Allowed」が返されています。そして、その後、GETしようとしてエラー返されているようです。
|
160
|
+
|
161
|
+
最後に、REST Client でPOSTに成功した時の状況です。
|
162
|
+

|
6
補足の追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -109,7 +109,7 @@
|
|
109
109
|
ということでした。
|
110
110
|
1行目の処理で、エラーが帰りそのため2行目のGETがうまくいかないということのようです。
|
111
111
|
|
112
|
-
戻り値の内容を一部抜粋
|
112
|
+
1行目POST時の戻り値の内容を一部抜粋
|
113
113
|
---------------------------------------------------------------------
|
114
114
|
IsSuccessStatusCode: false
|
115
115
|
ReasonPhrase: "Method Not Allowed"
|
5
補足を一部修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -103,4 +103,19 @@
|
|
103
103
|
2015-10-13 03:09:21 ::1 POST /api/GateApi/TestPost/ - 12345 - ::1 - - 302 0 0 13
|
104
104
|
2015-10-13 03:09:21 ::1 GET /api/GateApi/TestPost/ AspxAutoDetectCookieSupport=1 53903 - ::1 - - 405 0 0 266
|
105
105
|
---------------------------------------------------------------------
|
106
|
-
|
106
|
+
上記ログ(うまくいかないほう)とソースの対応を調べたのですが、
|
107
|
+
1行目: var response = await httpClient.PostAsync(url, content); → POST
|
108
|
+
2行目: String text = await response.Content.ReadAsStringAsync(); → GET
|
109
|
+
ということでした。
|
110
|
+
1行目の処理で、エラーが帰りそのため2行目のGETがうまくいかないということのようです。
|
111
|
+
|
112
|
+
戻り値の内容を一部抜粋
|
113
|
+
---------------------------------------------------------------------
|
114
|
+
IsSuccessStatusCode: false
|
115
|
+
ReasonPhrase: "Method Not Allowed"
|
116
|
+
RequestMessage: {Method: POST, RequestUri: 'http://localhost:12345/api/GateApi/TestPost/?AspxAutoDetectCookieSupport=1', Version: 1.1, Content: System.Net.Http.FormUrlEncodedContent, Headers:
|
117
|
+
{
|
118
|
+
Content-Type: application/x-www-form-urlencoded
|
119
|
+
Content-Length: 10
|
120
|
+
}}
|
121
|
+
---------------------------------------------------------------------
|
4
修正依頼があったため
title
CHANGED
File without changes
|
body
CHANGED
@@ -92,4 +92,15 @@
|
|
92
92
|
|
93
93
|
何か、ヘッダなど必要な情報があるんでしょうが、よくわかりません。
|
94
94
|
###補足情報
|
95
|
-
サーバー側もクライアント側も、.NETのバージョンは 4.5.1
|
95
|
+
サーバー側もクライアント側も、.NETのバージョンは 4.5.1
|
96
|
+
|
97
|
+
IISのログの抜粋です
|
98
|
+
---------------------------------------------------------------------
|
99
|
+
■うまくいくとき → ChromeのRest Client で呼び出し
|
100
|
+
2015-10-13 03:06:50 ::1 POST /api/GateApi/TestPost - 12345 - ::1 Mozilla/5.0+(Windows+NT+6.1;+WOW64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/45.0.2454.101+Safari/537.36 - 200 0 0 2620
|
101
|
+
|
102
|
+
■うまくいかないとき → WindowsForm で呼び出し
|
103
|
+
2015-10-13 03:09:21 ::1 POST /api/GateApi/TestPost/ - 12345 - ::1 - - 302 0 0 13
|
104
|
+
2015-10-13 03:09:21 ::1 GET /api/GateApi/TestPost/ AspxAutoDetectCookieSupport=1 53903 - ::1 - - 405 0 0 266
|
105
|
+
---------------------------------------------------------------------
|
106
|
+
なぜか POSしてGETしているような動きになってるみたいです。
|
3
間違ったソースコードをコピーしてしまいました
title
CHANGED
File without changes
|
body
CHANGED
@@ -48,6 +48,11 @@
|
|
48
48
|
```C#
|
49
49
|
private void button_Click(object sender, EventArgs e)
|
50
50
|
{
|
51
|
+
PostWebPageAsync();
|
52
|
+
}
|
53
|
+
|
54
|
+
private async void PostWebPageAsync()
|
55
|
+
{
|
51
56
|
this.label1.Text = "Post取得中";
|
52
57
|
|
53
58
|
string uri = "http://localhost:12345/api/GateApi/TestPost/";
|
2
説明不足と思われる個所に文章を追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -25,7 +25,7 @@
|
|
25
25
|
}
|
26
26
|
|
27
27
|
```
|
28
|
-
試しに、以下のJavascriptでPOSTしてみましたが、これは正常に処理されます。
|
28
|
+
試しに、同じサイト内のページに埋め込んだ、以下のJavascriptでPOSTしてみましたが、これは正常に処理されます。
|
29
29
|
値も正常に渡るし、戻り値も返っています。
|
30
30
|
```JavaScript
|
31
31
|
function testPost() {
|
1
補足情報を訂正
title
CHANGED
File without changes
|
body
CHANGED
@@ -87,4 +87,4 @@
|
|
87
87
|
|
88
88
|
何か、ヘッダなど必要な情報があるんでしょうが、よくわかりません。
|
89
89
|
###補足情報
|
90
|
-
.NETのバージョンは 4.5.1
|
90
|
+
サーバー側もクライアント側も、.NETのバージョンは 4.5.1
|