2017-10-26 3 views
0

잘못된 시간 오류로 인해 XML 파일을 데이터베이스로 보내는 데 문제가 있습니다. 프로젝트의 간단한 요약 :HTTP/1.1 404 Not FoundDate : 오류

저는 prestashop webservice를 통해 데이터를 검색, 전송 및 업데이트하는 응용 프로그램을 만들고 있습니다. 응용 프로그램은 기존의 사전 시작 응용 프로그램의 확장입니다. 웹 서비스로 작업하면 모든 데이터가 XML 문서를 통해 전달됩니다.

다음과 같은 두 가지 시나리오가 있습니다. 내가 데이터베이스에 새 값을 보내고있다
, 새로운 제품을 말할 수 : 데이터베이스에 새로운 값을 전송

1. 모든 것이 이상하게 작동합니다. HTTP 응답 헤더는 다음과 같습니다.

HTTP/1.1 200 OKDate: Thu, 26 Oct 2017 10:35:21 GMTServer: Apache/2Access-Time: 1509014121X-Powered-By: PrestaShop WebservicePSWS-Version: 1.7.2.4Execution-Time: 0.026Content-Sha1: SomeStuff; HttpOnlyUpgrade: h2,h2cConnection: UpgradeCache-Control: max-age=2592000Expires: Sat, 25 Nov 2017 10:35:21 GMTVary: Accept-Encoding,User-AgentTransfer-Encoding: chunkedContent-Type: text/xml;charset=utf-8 

실제 시간은 2 시간 후입니다. 여전히 XML 문서가 올바르게 전송되고, 값이 데이터베이스에 추가되고 time_add 및 time_upd가 서버에서 정확한 시간을 얻습니다.이 경우 2 시간 후 : 12:35:41.

그래서 새로운 값을 보내는 것은 문제가되지 않습니다.

업데이트 2 값의 값을 갱신하는 경우
제가 제 권리 데이터베이스 행을 선택한다 (문제가 occures 여기서 여기서이다). 그런 다음 몇 가지 새로운 값으로 값을 업데이트합니다.

모두 제대로 작동합니다. 양식이 값을 전송하면 HTTP 헤더가 값을 포착하여 XML 전송 섹션을 통해 값을 보내려고합니다. 하지만 HTTP 응답 헤더는 다시 다음과 같은 오류가 표시되고이 경우 2 시간 전까지의 시간을 검색합니다

HTTP RESPONSE HEADER 
HTTP/1.1 404 Not Found 
Date: Thu, 26 Oct 2017 10:40:52 GMT 
Server: Apache/2 
X-Powered-By: PHP/7.0.23 
Expires: Wed, 11 Jan 1984 05:00:00 GMT 
Cache-Control: no-cache, must-revalidate, max-age=0 
Link: <https://MySite.nl/wp-json/>; rel="https://api.w.org/" 
Upgrade: h2,h2c 
Connection: Upgrade 
Vary: Accept-Encoding,User-Agent 
Transfer-Encoding: chunked 
Content-Type: text/html; charset=UTF-8 

는 XML 보내기 보내려고 않고 날짜 시간 오류로 인해 거부됩니다. 그리고 그게 이상한 곳으로, 내가 서버 시간을 확인했기 때문에 거기에 문제가 없습니다. 서버 시간은 올바른 12시 40 분입니다 : ...

그래서 내 HTTP 헤더는 서버 타임보다 2 시간 늦었습니다.

그래서 제 질문은 :

는 모든 솔루션이 거기 아니면 같은 문제가 다른 사람이있다?

내 문제에 대한 설명이 명확하고 희망 사항이 아닌 경우 알려 주시면 질문을 업데이트하겠습니다.

언제나처럼, 미리 감사드립니다!

+0

정말로 2 시간 후입니까? 아니면 나중에 두 시간대입니까? – Quentin

+0

@Quentin 그들 중 하나 일 수 있습니다, 시간대는 서버에서 유럽 암스테르담에 대해 설정되어 서버에서 시간을 요청하면 정확한 시간을 제공합니다. 하지만 HTTP는 그 시간을 얻지 못하고 2 시간 더 빨리 2 시간 째라고 알려줍니다. – Deathstorm

+0

'날짜 : 목요일, 2017.10.10 10:40:52 그리니치 표준시 - 그리니치 표준시는 2 시간이다. 암스테르담 현지 시간 전. – Quentin

답변

0

그래서 시간대 문제에 대한 의견으로 인해 문제를 발견하고 해결했습니다.

prestashop webservice를 사용할 때 원래의 prestashop 응용 프로그램에 구성 파일이 작성됩니다. 구성에서 시간대가 설정되지 않았습니다.

솔루션에 대한 @Quentin의 모든 크레딧.

감사합니다.