質問編集履歴

1

見直し修正しました

2019/01/31 00:55

投稿

akiras
akiras

score8

test CHANGED
File without changes
test CHANGED
@@ -38,18 +38,18 @@
38
38
 
39
39
  '--------------------------------------------------------------------
40
40
 
41
- ' report簡易コントローラー(リクエストJSONをそのまま返す)
41
+ ' report簡易コントローラー(構造型のリクエストJSONをそのまま返す)
42
42
 
43
43
  '--------------------------------------------------------------------
44
44
 
45
- <OperationContract(), WebInvoke()>
45
+ <OperationContract(), WebInvoke()>
46
-
46
+
47
- Public Function report(req As List(Of DataList)) As List(Of DataList)
47
+ Public Function report(req As List(Of RequestJson3)) As List(Of RequestJson3)
48
+
49
+
48
50
 
49
51
  Dim RequestHeaders = WebOperationContext.Current.IncomingRequest.Headers ' リクエストヘッダー
50
52
 
51
-
52
-
53
53
  Return req
54
54
 
55
55
  End Function
@@ -62,11 +62,45 @@
62
62
 
63
63
  '--------------------------------------------------------------------
64
64
 
65
+ ' リクエスト・メインクラス(JSON List)
66
+
67
+ '--------------------------------------------------------------------
68
+
69
+ Public Class RequestJson3
70
+
71
+ Property headerlist3 As New List(Of HeaderList3) '--- 配列データ 
72
+
73
+ Property reqdat3 As New List(Of DataList3) '--- 配列データ 
74
+
75
+ End Class
76
+
77
+
78
+
79
+ '--------------------------------------------------------------------
80
+
81
+ ' リクエスト・ヘッダークラス(List)
82
+
83
+ '--------------------------------------------------------------------
84
+
85
+ Public Class HeaderList3
86
+
87
+ Property recordNo As String = "" '--- レコード番号
88
+
89
+ Property appVer As String = "" '--- 識別情報
90
+
91
+ Property houkokuTime As String = "" '--- データ作成日時
92
+
93
+ End Class
94
+
95
+
96
+
97
+ '--------------------------------------------------------------------
98
+
65
99
  ' リクエスト・データクラス(List)
66
100
 
67
101
  '--------------------------------------------------------------------
68
102
 
69
- Public Class DataList
103
+ Public Class DataList3
70
104
 
71
105
  Property recordNo As String = "" '--- レコード番号
72
106
 
@@ -86,63 +120,85 @@
86
120
 
87
121
  ##【ソース・リクエスト側】
88
122
 
89
-    Dim enc As System.Text.Encoding = System.Text.Encoding.GetEncoding("shift_jis")
90
-
91
-
92
-
93
-     'POST送信する文字作成
94
-
95
-     Dim postData As String
96
-
97
-
98
-
99
-     postData = System.Web.HttpUtility.UrlEncode(json.reqdat.ToArray.ToString, enc)
100
-
101
-      `  ※json.reqdatは、DataList型です`
102
-
103
-
104
-
105
-
106
-
107
-     'バイト型配列に変換
108
-
109
-     Dim postDataBytes As Byte() = enc.GetBytes(postData)
110
-
111
-     Dim wc As New System.Net.WebClient
112
-
113
-     '---  ヘッダ ---
114
-
115
-     wc.Headers.Add("Content-Type", "application/json; charset=utf-8")
116
-
117
-
118
-
119
-     Dim eMsg As String = ""
120
-
121
-
122
-
123
-     '***** データを送信し、結果を受信する *****
124
-
125
-     reqCount = reqCount + 1
126
-
127
-     Dim resData As Byte()
128
-
129
-     resData = wc.UploadData(pmsRequestUrl, postDataBytes)    `※ここで400のエラーになります`
130
-
131
-
132
-
133
-     wc.Dispose()
134
-
135
-
136
-
137
-     '信し結果(JSONデータ)表示する
138
-
139
-     Dim resText As String = enc.GetString(resData)
140
-
141
-     Console.WriteLine(resText)
142
-
143
-
144
-
145
-
123
+ Private Function RequestToPMS3(ByRef json As RequestJson3) As String
124
+
125
+
126
+
127
+ '文字コード指定する
128
+
129
+ Dim enc As System.Text.Encoding = System.Text.Encoding.GetEncoding("UTF-8")
130
+
131
+
132
+
133
+ 'POST送信する文字列を作成
134
+
135
+ Dim postData As String
136
+
137
+ postData = System.Web.HttpUtility.UrlEncode(json.ToString, enc)  `※ JSONではなく、"xxx.RequestJson3"の文字になっている`
138
+
139
+
140
+
141
+ 'バイト型配列に変換
142
+
143
+ Dim postDataBytes As Byte() = enc.GetBytes(postData)
144
+
145
+
146
+
147
+ Dim wc As New System.Net.WebClient
148
+
149
+
150
+
151
+ '--- ヘッダ ---
152
+
153
+ ' Content-Type
154
+
155
+ wc.Headers.Add("Content-Type", "application/json; charset=utf-8")
156
+
157
+
158
+
159
+ ' 連携リクエストID
160
+
161
+ wc.Headers.Add("X-Request-Id", getRequestId())
162
+
163
+
164
+
165
+ Dim eMsg As String = ""
166
+
167
+ Try
168
+
169
+
170
+
171
+ '***** データを送信し結果を受信する *****
172
+
173
+ reqCount = reqCount + 1
174
+
175
+ Dim resData As Byte()
176
+
177
+ resData = wc.UploadData(pmsRequestUrl, postDataBytes)    `※ここで400のエラーになります`
178
+
179
+
180
+
181
+ wc.Dispose()
182
+
183
+
184
+
185
+ '受信した結果(JSONデータ)を表示する
186
+
187
+ Dim resText As String = enc.GetString(resData)
188
+
189
+ Console.WriteLine(resText)
190
+
191
+
192
+
193
+      ~
194
+
195
+      ~
196
+
197
+      ~
198
+
199
+      ~
200
+
201
+ End Function
146
202
 
147
203
 
148
204
 
@@ -160,6 +216,8 @@
160
216
 
161
217
 
162
218
 
219
+ 0. postData = System.Web.HttpUtility.UrlEncode(json.ToString, enc)の結果がJSONではなく、"xxx.RequestJson3"の文字になってしまう(これがまずNG)
220
+
163
221
 
164
222
 
165
223
  以上、よろしくお願いいたします。