0

私はMonoTouchを初めて使用し、JSONを返すWebサイトにPOSTしようと取り組んできました。MonoTouchのサンプルサイトには、切り取って貼り付けた例がありますが、実際に動作するプロジェクトは見つかりませんでした。RestSharpはかなり見栄えがしますが、実際の例を含むIOSプロジェクトを見つけることができませんでした。コードを切り取って貼り付けるだけで簡単にできるはずです。System.dllにはSystem.Net名前空間がありますが、私にとっては未解決の参照を取得し続けます。私が実行できる実用的な例は大いに役立つでしょう。ほんの些細な例ですら。自分の複雑なものをすべて追加できます。

ありがとう、

4

1 に答える 1

2

これは、System.JSON名前空間で使用したコードのスニペットです。

public JsonValue Post(string address) {

    JsonValue value = null;
    try
    {
        HttpWebRequest req = (HttpWebRequest)WebRequest.Create(address);
        req.Method = "POST";

        JsonObject postJson = new JsonObject();
        foreach (KeyValuePair<string, string> val in this.FormParams) 
            postJson.Add(new KeyValuePair<string, JsonValue>(val.Key, new JsonPrimitive(val.Value)));

        byte[] postData = new ASCIIEncoding().GetBytes(postJson.ToString());

        req.ContentLength = postData.Length;

        Stream dataStream = req.GetRequestStream();
        dataStream.Write(postData, 0, postData.Length);
        dataStream.Close();

        using (HttpWebResponse resp = (HttpWebResponse)req.GetResponse()) 
        {
            using (StreamReader reader = new StreamReader (resp.GetResponseStream ())) 
            {
                value = JsonValue.Load(reader);
            }
        }
    }
    catch (Exception ex)
    {
        _lastError = ex.Message;
        Log.Error(String.Format("Exception on JsonHandler::Post(action): {0}", ex.Message)); 
    }
    return value;
}

ここで、「action」はhttp://service-address.com/json/usersのようにアクセスするアドレスであり、 「this.FormParams」はポストデータを含むリストです。あらゆる種類のJSONオブジェクトを含むことができるJsonValueを返します。

于 2012-08-03T14:49:05.090 に答える