質問編集履歴
6
ネストを調節
test
CHANGED
File without changes
|
test
CHANGED
@@ -286,7 +286,7 @@
|
|
286
286
|
|
287
287
|
String b = connection.getResponseMessage();
|
288
288
|
|
289
|
-
|
289
|
+
InputStream c = connection.getInputStream();
|
290
290
|
|
291
291
|
|
292
292
|
|
5
Content-Lengthの内容を記載
test
CHANGED
File without changes
|
test
CHANGED
@@ -240,12 +240,32 @@
|
|
240
240
|
|
241
241
|
|
242
242
|
|
243
|
+
//Content-Lengthの手動記載
|
244
|
+
|
245
|
+
byte[] bytes = request.getBytes();
|
246
|
+
|
247
|
+
connection.setInstanceFollowRedirects(false);
|
248
|
+
|
249
|
+
String texta = String.valueOf(bytes.length);
|
250
|
+
|
251
|
+
connection.setFixedLengthStreamingMode(bytes.length);
|
252
|
+
|
253
|
+
connection.setFixedLengthStreamingMode((long)bytes.length);
|
254
|
+
|
255
|
+
|
256
|
+
|
243
257
|
connection.setRequestProperty("Host", "test.circus.shopping.yahooapis.jp");
|
244
258
|
|
245
259
|
connection.setRequestProperty("Authorization", "Bearer " + <アクセストークン>);
|
246
260
|
|
247
261
|
|
248
262
|
|
263
|
+
//Content-Typeの設定
|
264
|
+
|
265
|
+
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
|
266
|
+
|
267
|
+
|
268
|
+
|
249
269
|
connection.connect();
|
250
270
|
|
251
271
|
|
@@ -420,7 +440,7 @@
|
|
420
440
|
|
421
441
|
④ connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");の加筆
|
422
442
|
|
423
|
-
⑤ connection.setInstanceFollowRedirects(false) を使用したContent-Lenghtの手動調整
|
443
|
+
⑤ connection.setInstanceFollowRedirects(false) を使用したContent-Lenghtの手動調整 SCに記載を追加。
|
424
444
|
|
425
445
|
⑥ requestStringの内容の修正
|
426
446
|
|
4
足りない情報の加筆をしました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
|
16
16
|
|
17
|
-
|
17
|
+
InputStream c = connection.getInputStream()で発生したエラーコード。
|
18
18
|
|
19
19
|
```error
|
20
20
|
|
3
レスポンスコード確認部分にInputStream確認を追加しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -14,6 +14,106 @@
|
|
14
14
|
|
15
15
|
|
16
16
|
|
17
|
+
|
18
|
+
|
19
|
+
```error
|
20
|
+
|
21
|
+
java.io.IOException: Server returned HTTP response code: 400 for URL: https://test.circus.shopping.yahooapis.jp/ShoppingWebService/V1/editItem
|
22
|
+
|
23
|
+
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
|
24
|
+
|
25
|
+
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
|
26
|
+
|
27
|
+
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
|
28
|
+
|
29
|
+
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
|
30
|
+
|
31
|
+
at java.base/sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1969)
|
32
|
+
|
33
|
+
at java.base/sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1964)
|
34
|
+
|
35
|
+
at java.base/java.security.AccessController.doPrivileged(Native Method)
|
36
|
+
|
37
|
+
at java.base/sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1963)
|
38
|
+
|
39
|
+
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1531)
|
40
|
+
|
41
|
+
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1515)
|
42
|
+
|
43
|
+
at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:250)
|
44
|
+
|
45
|
+
at servlet.api.EditItem.executePost(EditItem.java:96)
|
46
|
+
|
47
|
+
at servlet.api.EditItem.editItem(Unknown Source)
|
48
|
+
|
49
|
+
at servlet.ProductEntry.doPost(ProductEntry.java:115)
|
50
|
+
|
51
|
+
at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
|
52
|
+
|
53
|
+
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
|
54
|
+
|
55
|
+
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
|
56
|
+
|
57
|
+
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
|
58
|
+
|
59
|
+
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
|
60
|
+
|
61
|
+
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
|
62
|
+
|
63
|
+
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
|
64
|
+
|
65
|
+
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
|
66
|
+
|
67
|
+
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
|
68
|
+
|
69
|
+
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
|
70
|
+
|
71
|
+
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
|
72
|
+
|
73
|
+
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
|
74
|
+
|
75
|
+
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
|
76
|
+
|
77
|
+
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
|
78
|
+
|
79
|
+
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
|
80
|
+
|
81
|
+
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:367)
|
82
|
+
|
83
|
+
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
|
84
|
+
|
85
|
+
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860)
|
86
|
+
|
87
|
+
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1598)
|
88
|
+
|
89
|
+
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
|
90
|
+
|
91
|
+
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
|
92
|
+
|
93
|
+
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
|
94
|
+
|
95
|
+
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
|
96
|
+
|
97
|
+
at java.base/java.lang.Thread.run(Thread.java:834)
|
98
|
+
|
99
|
+
Caused by: java.io.IOException: Server returned HTTP response code: 400 for URL: https://test.circus.shopping.yahooapis.jp/ShoppingWebService/V1/editItem
|
100
|
+
|
101
|
+
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1919)
|
102
|
+
|
103
|
+
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1515)
|
104
|
+
|
105
|
+
at java.base/java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:527)
|
106
|
+
|
107
|
+
at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:334)
|
108
|
+
|
109
|
+
at servlet.api.EditItem.executePost(EditItem.java:93)
|
110
|
+
|
111
|
+
... 26 more
|
112
|
+
|
113
|
+
```
|
114
|
+
|
115
|
+
|
116
|
+
|
17
117
|
### 該当のソースコード
|
18
118
|
|
19
119
|
|
@@ -166,6 +266,8 @@
|
|
166
266
|
|
167
267
|
String b = connection.getResponseMessage();
|
168
268
|
|
269
|
+
InputStream c = connection.getInputStream();
|
270
|
+
|
169
271
|
|
170
272
|
|
171
273
|
if (connection != null) {
|
@@ -324,6 +426,8 @@
|
|
324
426
|
|
325
427
|
⑦ getRequestMessage()の追加 結果は Bad Request
|
326
428
|
|
429
|
+
⑧ connection.getInputStream(); での中身の確認の追加、そこでCatchに飛ばされる。
|
430
|
+
|
327
431
|
|
328
432
|
|
329
433
|
### 補足情報(FW/ツールのバージョンなど)
|
2
回答で教えて頂いた内容を試したことに追加しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -72,7 +72,7 @@
|
|
72
72
|
|
73
73
|
sellerIdUtf8 = URLEncoder.encode(sellerId, "UTF-8");
|
74
74
|
|
75
|
-
requestString = "
|
75
|
+
requestString = "seller_id=" + sellerIdUtf8 +"&";
|
76
76
|
|
77
77
|
|
78
78
|
|
@@ -164,6 +164,8 @@
|
|
164
164
|
|
165
165
|
int a = connection.getResponseCode();
|
166
166
|
|
167
|
+
String b = connection.getResponseMessage();
|
168
|
+
|
167
169
|
|
168
170
|
|
169
171
|
if (connection != null) {
|
@@ -318,6 +320,10 @@
|
|
318
320
|
|
319
321
|
⑤ connection.setInstanceFollowRedirects(false) を使用したContent-Lenghtの手動調整
|
320
322
|
|
323
|
+
⑥ requestStringの内容の修正
|
324
|
+
|
325
|
+
⑦ getRequestMessage()の追加 結果は Bad Request
|
326
|
+
|
321
327
|
|
322
328
|
|
323
329
|
### 補足情報(FW/ツールのバージョンなど)
|
1
必須部分以外のコードを省略しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -258,32 +258,6 @@
|
|
258
258
|
|
259
259
|
|
260
260
|
|
261
|
-
if(!StringUtils.isEmpty(form.getProductCategory())){
|
262
|
-
|
263
|
-
textEdit = URLEncoder.encode(form.getProductCategory(), "UTF-8");
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
requestString = requestString + "product_category=" + textEdit +"&";
|
268
|
-
|
269
|
-
}
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
if(!StringUtils.isEmpty(form.getOriginalPrice())){
|
276
|
-
|
277
|
-
textEdit = URLEncoder.encode(form.getOriginalPrice(), "UTF-8");
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
requestString = requestString + "original_price=" + textEdit +"&";
|
282
|
-
|
283
|
-
}
|
284
|
-
|
285
|
-
|
286
|
-
|
287
261
|
if(!StringUtils.isEmpty(form.getPrice())){
|
288
262
|
|
289
263
|
textEdit = URLEncoder.encode(form.getPrice(), "UTF-8");
|
@@ -296,213 +270,7 @@
|
|
296
270
|
|
297
271
|
|
298
272
|
|
299
|
-
if(!StringUtils.isEmpty(form.getSalePrice())){
|
300
|
-
|
301
|
-
textEdit = URLEncoder.encode(form.getSalePrice(), "UTF-8");
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
requestString = requestString + "sale_price=" + textEdit +"&";
|
306
|
-
|
307
|
-
}
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
if(!StringUtils.isEmpty(form.getMemberPrice())){
|
312
|
-
|
313
|
-
textEdit = URLEncoder.encode(form.getMemberPrice(), "UTF-8");
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
requestString = requestString + "member_price=" + textEdit +"&";
|
318
|
-
|
319
|
-
}
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
if(!StringUtils.isEmpty(form.getHeadline())){
|
324
|
-
|
325
|
-
textEdit = URLEncoder.encode(form.getHeadline(), "UTF-8");
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
requestString = requestString + "headline=" + textEdit +"&";
|
330
|
-
|
331
|
-
}
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
if(!StringUtils.isEmpty(form.getCaption())){
|
336
|
-
|
337
|
-
textEdit = URLEncoder.encode(form.getCaption(), "UTF-8");
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
requestString = requestString + "caption=" + textEdit +"&";
|
342
|
-
|
343
|
-
}
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
if(!StringUtils.isEmpty(form.getComment())){
|
348
|
-
|
349
|
-
textEdit = URLEncoder.encode(form.getComment(), "UTF-8");
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
requestString = requestString + "abstract=" + textEdit +"&";
|
354
|
-
|
355
|
-
}
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
if(!StringUtils.isEmpty(form.getExplanation())){
|
360
|
-
|
361
|
-
textEdit = URLEncoder.encode(form.getExplanation(), "UTF-8");
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
requestString = requestString + "explanation=" + textEdit +"&";
|
366
|
-
|
367
|
-
}
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
if(!StringUtils.isEmpty(form.getShipWeight())){
|
372
|
-
|
373
|
-
textEdit = URLEncoder.encode(form.getShipWeight(), "UTF-8");
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
requestString = requestString + "ship_weight=" + textEdit +"&";
|
378
|
-
|
379
|
-
}
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
if(!StringUtils.isEmpty(form.getTaxable())){
|
384
|
-
|
385
|
-
textEdit = URLEncoder.encode(form.getTaxable(), "UTF-8");
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
requestString = requestString + "taxable=" + textEdit +"&";
|
390
|
-
|
391
|
-
}
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
if(!StringUtils.isEmpty(form.getTaxrateType())){
|
396
|
-
|
397
|
-
textEdit = URLEncoder.encode(form.getTaxrateType(), "UTF-8");
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
requestString = requestString + "taxrate_type=" + textEdit +"&";
|
402
|
-
|
403
|
-
}
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
if(!StringUtils.isEmpty(form.getReleaseDate())){
|
408
|
-
|
409
|
-
textEdit = URLEncoder.encode(form.getReleaseDate(), "UTF-8");
|
410
|
-
|
411
|
-
|
412
|
-
|
413
|
-
requestString = requestString + "release_date=" + textEdit +"&";
|
414
|
-
|
415
|
-
}
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
if(!StringUtils.isEmpty(form.getSaleLimit())){
|
422
|
-
|
423
|
-
textEdit = URLEncoder.encode(form.getSaleLimit(), "UTF-8");
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
requestString = requestString + "sale_limit=" + textEdit +"&";
|
428
|
-
|
429
|
-
}
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
if(!StringUtils.isEmpty(form.getSpCode())){
|
434
|
-
|
435
|
-
textEdit = URLEncoder.encode(form.getSpCode(), "UTF-8");
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
requestString = requestString + "sp_code=" + textEdit +"&";
|
440
|
-
|
441
|
-
}
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
if(!StringUtils.isEmpty(form.getPointCode())){
|
446
|
-
|
447
|
-
textEdit = URLEncoder.encode(form.getPointCode(), "UTF-8");
|
448
|
-
|
449
|
-
|
450
|
-
|
451
|
-
requestString = requestString + "point_code=" + textEdit +"&";
|
452
|
-
|
453
|
-
}
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
if(!StringUtils.isEmpty(form.getBrandCode())){
|
458
|
-
|
459
|
-
textEdit = URLEncoder.encode(form.getBrandCode(), "UTF-8");
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
requestString = requestString + "brand_code=" + textEdit +"&";
|
464
|
-
|
465
|
-
}
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
|
471
|
-
if(!StringUtils.isEmpty(form.getProductCode())){
|
472
|
-
|
473
|
-
textEdit = URLEncoder.encode(form.getProductCode(), "UTF-8");
|
474
|
-
|
475
|
-
|
476
|
-
|
477
|
-
requestString = requestString + "product_code=" + textEdit +"&";
|
478
|
-
|
479
|
-
}
|
480
|
-
|
481
|
-
|
482
|
-
|
483
|
-
|
273
|
+
~~~~~~可読性のため、処理省略~~~~~~
|
484
|
-
|
485
|
-
textEdit = URLEncoder.encode(form.getJan(), "UTF-8");
|
486
|
-
|
487
|
-
|
488
|
-
|
489
|
-
requestString = requestString + "jan=" + textEdit +"&";
|
490
|
-
|
491
|
-
}
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
-
if(!StringUtils.isEmpty(form.getDelivery())){
|
496
|
-
|
497
|
-
textEdit = URLEncoder.encode(form.getDelivery(), "UTF-8");
|
498
|
-
|
499
|
-
|
500
|
-
|
501
|
-
requestString = requestString + "delivery=" + textEdit +"&";
|
502
|
-
|
503
|
-
}
|
504
|
-
|
505
|
-
|
506
274
|
|
507
275
|
|
508
276
|
|
@@ -540,10 +308,16 @@
|
|
540
308
|
|
541
309
|
|
542
310
|
|
543
|
-
① Content-Length要素の記載
|
311
|
+
① Content-Length要素の記載
|
544
312
|
|
545
313
|
② https://teratail.com/questions/34815 を参考にPOST要素の作成
|
546
314
|
|
315
|
+
③ request部分を必須アイテムだけにして送信処理
|
316
|
+
|
317
|
+
④ connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");の加筆
|
318
|
+
|
319
|
+
⑤ connection.setInstanceFollowRedirects(false) を使用したContent-Lenghtの手動調整
|
320
|
+
|
547
321
|
|
548
322
|
|
549
323
|
### 補足情報(FW/ツールのバージョンなど)
|