0

WCF Web サービスで C# を使用して、テンプレートを介して参照されるドキュメントの署名を要求するための REST API をテストしようとしています。

ログインのステップ 1 が機能し、accountID と baseURl が返されます。

ステップ 2 は で失敗しますBad Request

これが私のコードです:

try {
    ...
    string requestBody = "<envelopeDefinition xmlns=\"http://www.docusign.com/restapi\">" +
            "<accountId>" + accountId + "</accountId>" +
            "<status>" + "sent" + "</status>" +
            "<emailSubject>" + "API Call for Embedded Sending" + "</emailSubject>" +
            "<emailBlurb>" + "This comes from C#" + "</emailBlurb>" +
            "<templateId>" + "9A535489-0FB6-42B2-82C1-A06DA36025B4" + "</templateId>" +
            "<templateRoles>" +                       
            "<email>" + "abc@gmail.com" + "</email>" +  // NOTE: Use different email address if username provided in non-email format!
            "<name>" + "GRAVITY1003" + "</name>" +              // username can be in email format or an actual ID string
            "<roleName>" + "GRAVITY1003" + "</roleName>" +
            "</templateRoles>" +
            "</envelopeDefinition>";

    // append "/envelopes" to baseUrl and use in the request
    request = (HttpWebRequest)WebRequest.Create(baseURL + "/envelopes");
    request.Headers.Add("X-DocuSign-Authentication", authenticateStr);
    request.ContentType = "application/xml";
    request.Accept = "application/xml";
    request.ContentLength = requestBody.Length;
    request.Method = "POST";
    // write the body of the request
    byte[] body = System.Text.Encoding.UTF8.GetBytes(requestBody);
    Stream dataStream = request.GetRequestStream();
    dataStream.Write(body, 0, requestBody.Length);
    dataStream.Close();
    // read the response
    webResponse = (HttpWebResponse)request.GetResponse();------> It fails here
    sr = new StreamReader(webResponse.GetResponseStream());
    responseText = sr.ReadToEnd();
    uri = responseText;
}
catch (WebException e)
{
    using (WebResponse response = e.Response)
    {
        HttpWebResponse httpResponse = (HttpWebResponse)response;
        Console.WriteLine("Error code: {0}", httpResponse.StatusCode);
        using (Stream data = response.GetResponseStream())
        {
            string text = new StreamReader(data).ReadToEnd();
            Console.WriteLine(text);
        }
    }
}

誰が私が間違っているのか教えてもらえますか? API ウォークスルーを見て、それに応じてこれをコーディングしました。なぜこれが起こっているのか分かりません。

4

1 に答える 1