チタンのためのコードです:チタン
以下var request = Titanium.Network.createHTTPClient();
request.open("POST", bh.serverAddress + "MyCareer.svc/PostMessage/"+ bh.userID + "/" + bh.logic.profile.userID);
request.setRequestHeader("enctype", "multipart/form-data");
request.setRequestHeader("Content-Type", "text/json");
request.send(data_to_send);
request.onload = function() {
Ti.API.info(this.responseText);
bh.ui.profile.createWindow();
};
request.onerror = function(){
alert('Error while posting message');
};
は、WCFのコードです:
インタフェース:
[OperationContract]
[WebInvoke(Method = "POST",
UriTemplate = "/PostMessage/{userid}/{touserid}",
BodyStyle = WebMessageBodyStyle.WrappedRequest,
ResponseFormat = WebMessageFormat.Json,
RequestFormat = WebMessageFormat.Json)]
int PostMessage(string userid, string touserid, string message);
クラス:
public int PostMessage(string userID, string toUserID, string message)
{
MDBDataContext oMDB = new MDBDataContext();
int returnValue = oMDB.PostMessage(Convert.ToInt32(userID), message, Convert.ToInt32(toUserID));
oMDB.Dispose();
return returnValue;
}
クエリ:この機能を変換する場合t o "GET"は非常にうまく動作します。しかし、 "POST"ではエラーが発生し、エラーを特定できません。 WCFでもtraceListenerを有効にしましたが、エラーはありません。
助けてください。私はこの時点で立ち往生しています。私はiPhoneシミュレータで試しています。
夜にチェックアウトして投稿を更新します。 – iMatoria
私はそれがどちらの方法でも動作しないことを確認し、見つけました。しかし、ここで注目すべき点の1つは、私のonload関数が呼び出されたため、Titaniumは実際にWCFへのリクエストを成功させることです。私は問題がポストサービスのためにチタンとWCFの間の通信署名にあると思う。 WCFではなく、Asp.Netページで確認してみましょう。 – iMatoria
ありがとうございました。あなたの答えに私の上記コメントがあるので、私は最終的にバグを発見しました。どうもありがとう。 – iMatoria