2

Delphi XE2DataSnapRESTサーバーにリンクするiPhone用のアプリを作成しています。

もともと私はEmbarcaderoのモバイルコネクタを使用してiOSフロントエンドをコーディングしていましたが、多くのバグのため、asihttprequestを使用して独自のリンクを作成する必要があります。

システムにJSONリクエストを処理させ、次のような1つまたは2つのパラメーター(URLを使用)を渡すことができます。

NSURL *theURL = [NSURL URLWithString:@"http://192.168.1.2:8080/datasnap/rest/tservermethods1/SaveMileage/type1/100];
request = [ASIHTTPRequest requestWithURL:theURL];

(サーバーメソッドはSaveMileageであり、2つのパラメーター値はtype1と100です)

ただし、より複雑なパラメーターを追加する場合は、appendPostDataを使用してJSONを使用してパラメーターを投稿する必要があります。

[request appendPostData:jsonMutData];

以下はjsonMutDataの出力です:-

{
  "client_ref" : "ABC100",
  "mileage_type" : "Fee Work",
  "mileage_description" : "test",
  "mileage_id" : "0",
  "mileage_date" : "03\/15\/2012"
}

ただし、これをアプリ経由でサーバーに投稿すると、次の応答が返され、呼び出しはDataSnapサーバーによって処理されません。

{"error":"**Cannot convert JSON value** {\"client_ref\":\"ABC100",\"mileage_type\":\"Fee Work\",\"mileage_description\":\"test\",\"mileage_id\":\"\",\"mileage_date\":\"03\/15\/2012\"} input into TDBXTypes.WideString"}

以下は、DataSnap関数の構造です。

function TServerMethods1.updateSaveMileage(mileage_id: string; 
client_ref: string; mileage_date: String; mileage_type: string; 
mileagefigure: string; description: string; notepad: string): string;

これを解決する方法について何かアイデアはありますか?

4

1 に答える 1