2010-09-20 56 views
1

問候。用於發佈到Google語音「API」的CFHTTP內容長度標題

我想通過谷歌語音使用他們現有的API發送一個快速的短信。我認爲api是大中央時代遺留下來的。他們沒有太多的文件。這裏是我得到我的文檔:http://posttopic.com/topic/google-voice-add-on-development

我可以使用cfhttp進行身份驗證,並獲得正確的響應。然後,我可以獲取來自Google語音命令的請求所需的「_rnr_se」值。

當我發送數字,消息和所需的值(Authorization and _rnr_se)時,我得到一個「content-length」是來自google的必需消息。但由於這是一個帶有不同表單域的動態文章,而不是一個文件,我不確定要發佈什麼內容長度。

如果我只是把一些任意的值,如「1000」作爲內容長度,請求就在那裏,我從來沒有得到一個響應。如果我放置「0」或「500」之類的東西,它會返回一個500 - 「內部服務器錯誤」。

關於如何在發佈前獲取正確的內容長度值的任何想法?

<cffunction name="submitSMS"> 

    <cfhttp url="https://www.google.com/voice/sms/send/" method="post"> 
     <cfhttpparam type="header" name="Content-Length" value="???"> 
     <cfhttpparam type="header" name="Authorization" value="GoogleLogin auth=#SESSION.GoogleAuth#"> 
     <cfhttpparam name="id" value="" type="formfield"> 
     <cfhttpparam name="phoneNumber" value="+1#params.number#" type="formfield"> 
     <cfhttpparam name="text" value="#params.smsMessage#" type="formfield"> 
     <cfhttpparam name="_rnr_se" value="#SESSION.rnr#" type="formfield"> 
    </cfhttp> 

    <cfdump var="#cfhttp.FileContent#"><cfabort> 
</cffunction> 
+0

如果你改變了形式張貼到另一個CF模板您的服務器上,而只是轉儲文章( =轉儲到cfserver.log),您會看到它已經發送了內容長度標題。哦,等等,你在Railo嗎?我正在測試CF8,所以我不知道Railo做了什麼。但是,如果你試圖傾銷這個帖子,你看到了什麼? – 2010-09-20 15:33:32

+0

感謝您的提示。我正在使用Railo。顯然,Railo不會自動添加內容長度標題。但最終的結果是使用谷歌語音API。已經爲此構建了一個Java類包裝器,您可以在CF中輕鬆訪問該包裝器。 – GuiDoody 2010-09-21 16:05:04

+0

順便說一句:你確定Content-Length標題和Railo?我可以發誓它確實創造了這個標題。 – Leigh 2010-09-21 16:23:50

回答