pjlclub

Fri 2 Jun 2006 15:14:27
Fri 2 Jun 2006 15:14:27
ผมเขียน file post ส่ง sms ครับโดยส่งในรูปแบบ xml
<%
...//.....
set NewDoc = xmlSend (sURL, SendDoc)
private function xmlSend(url, docSubmit)
Set poster = Server.CreateObject("MSXML2.ServerXMLHTTP")
poster.open "POST", url, false
poster.setRequestHeader "CONTENT-TYPE", "text/xml"
poster.setRequestHeader "Authorization", "Basic " & encrypt64
poster.setRequestHeader "Content-Length", ""& xmlStringLength &""
poster.send docSubmit
Set NewDoc = server.createobject("Microsoft.XMLDOM")
newDoc.ValidateOnParse= True
newDoc.LoadXML(poster.responseTEXT)
Set XMLSend = NewDoc
Set poster = Nothing
end function
...//...
%>
ปัญหามันก้อคือว่า เดิมผมRUNจาก serverเก่าที่ใช้ windows2003ไม่มีsp RUNได้ครับ ผลที่ได้ออกมาคือ
POST / HTTP/1.1
Content-Type: text/xml
Authorization: เซนต์เซอร์
Content-Length: 387
เซนต์เซอร์ xxxxxxxxxx xxxxx
แต่เมือเปลี่ยน มารันอีก server ซึ้งเป็นwindows2003sp1 มีปัญหาครับ ผลที่ได้คือ
POST / HTTP/1.1
Content-Type: text/xml; charset=UTF-8
Authorization: เซนต์เซอร์
Content-Length: 422
เซนต์เซอร์ xxxx xxxxxxxx
ดูเหมือนจะไม่มีปัญหา แต่ปัญหาก้อคือ "; charset=UTF-8" มีติดมาด้วยครับ ทั้งๆๆที่ code เดี่ยวกัน ไม่รู้ว่าตัว "; charset=UTF-8"มาได้ไง
ผมต้องการตัด "; charset=UTF-8" ออกไปยังไงครับ
ไม่ต้องการให้มี "; charset=UTF-8" ติดมาด้วย เอาแบบContent-Type: text/xml ไม่มีอะไรมาต่อ อะครับ
ผมไม่อยากลงwin server เพราะในเรื่องใหญ่เลยครับ
ใครทราบช่วยบอก มาเป้นขั้นตอนด้วย ครับ ผมจนปัญญาจิงๆๆ หรือ จะมาคุยได้ที่ pjlclub@hotmail.com ขอบคุณมากครับ
<%
...//.....
set NewDoc = xmlSend (sURL, SendDoc)
private function xmlSend(url, docSubmit)
Set poster = Server.CreateObject("MSXML2.ServerXMLHTTP")
poster.open "POST", url, false
poster.setRequestHeader "CONTENT-TYPE", "text/xml"
poster.setRequestHeader "Authorization", "Basic " & encrypt64
poster.setRequestHeader "Content-Length", ""& xmlStringLength &""
poster.send docSubmit
Set NewDoc = server.createobject("Microsoft.XMLDOM")
newDoc.ValidateOnParse= True
newDoc.LoadXML(poster.responseTEXT)
Set XMLSend = NewDoc
Set poster = Nothing
end function
...//...
%>
ปัญหามันก้อคือว่า เดิมผมRUNจาก serverเก่าที่ใช้ windows2003ไม่มีsp RUNได้ครับ ผลที่ได้ออกมาคือ
POST / HTTP/1.1
Content-Type: text/xml
Authorization: เซนต์เซอร์
Content-Length: 387
เซนต์เซอร์ xxxxxxxxxx xxxxx
แต่เมือเปลี่ยน มารันอีก server ซึ้งเป็นwindows2003sp1 มีปัญหาครับ ผลที่ได้คือ
POST / HTTP/1.1
Content-Type: text/xml; charset=UTF-8
Authorization: เซนต์เซอร์
Content-Length: 422
เซนต์เซอร์ xxxx xxxxxxxx
ดูเหมือนจะไม่มีปัญหา แต่ปัญหาก้อคือ "; charset=UTF-8" มีติดมาด้วยครับ ทั้งๆๆที่ code เดี่ยวกัน ไม่รู้ว่าตัว "; charset=UTF-8"มาได้ไง
ผมต้องการตัด "; charset=UTF-8" ออกไปยังไงครับ
ไม่ต้องการให้มี "; charset=UTF-8" ติดมาด้วย เอาแบบContent-Type: text/xml ไม่มีอะไรมาต่อ อะครับ
ผมไม่อยากลงwin server เพราะในเรื่องใหญ่เลยครับ
ใครทราบช่วยบอก มาเป้นขั้นตอนด้วย ครับ ผมจนปัญญาจิงๆๆ หรือ จะมาคุยได้ที่ pjlclub@hotmail.com ขอบคุณมากครับ
จริงๆแล้ว content-length นั้นต้องรวม request header ด้วยนะครับ
(ถ้าผมจำไม่ผิดนะ) ที่มีปัญหาน่าจะเกิดจากตอน request มีการส่ง header
เป็น charset utf-8 ซึ่งเป็นมาตรฐานในเอกสาร xml ซึ่งเข้าใจว่า request
เดิมของคุณอาจจะส่งเป็น ascii ซึ่งคงต้องทำการ convert จาก ascii เป็น
utf-8 ครับ
pjlclub

Fri 2 Jun 2006 21:04:31
Fri 2 Jun 2006 21:04:31
แล้วมีคำสั่งมั้ยครับที่ ตัด charset=UTF-8 ออก ทั้งๆที่ code ผมไม่ได้เขียนกำหนดค่า harset=UTF-8เลย อะครับ
ช่วยอีกที นะครับ
ผมว่าอาจจะเป็นที่ iis เพิ่มลงไปนะครับ ซึ่งถ้าเป็นเช่นนั้น คงจะตัดไม่ได้
ในอีกทางผมว่าระบุ charset ลงไปใน request header เลยดีกว่าไหมครับ
ต้องขออภัยด้วยครับไม่ถนัด asp
ในอีกทางผมว่าระบุ charset ลงไปใน request header เลยดีกว่าไหมครับ
ต้องขออภัยด้วยครับไม่ถนัด asp

















