首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将python代码转换为C#

将python代码转换为C#
EN

Stack Overflow用户
提问于 2015-08-26 07:36:18
回答 2查看 910关注 0票数 0

我在python中有这样的代码

代码语言:javascript
复制
response = requests.post(
    "https://gateway.watsonplatform.net/personality-insights/api/v2/profile",
    auth = ("username", "password"),
    headers = {"content-type": "text/plain"},
    data = "your text goes here"
)

jsonProfile = json.loads(response.text)

我正在尝试将其转换为C#,下面是我的代码:

代码语言:javascript
复制
public void getRequest() {
        string url = "https://gateway.watsonplatform.net/personality-insights/api/v2/profile";
        using (var client = new WebClient())
        {
            var values = new NameValueCollection();
            values["username"] = username;
            values["password"] = password;
            values["content-type"] = "text/plain";
            values["data"] = getTestWords(@"D:\Userfiles\tchaiyaphan\Documents\API and Intelligence\storyTestWord.txt");

            var response = client.UploadValues(url, values);

            var responseString = Encoding.Default.GetString(response);
        }
    }

我不知道如何处理标题部分,所以我忽略了这一点。当我运行代码时,它给了我一个401错误。我不知道该怎么做!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-26 07:45:03

问题是,您的代码将用户名和密码作为POST数据发送,而不是使用正确的HTTP授权头。

代码语言:javascript
复制
client.Credentials = new NetworkCredential(username, password);
票数 1
EN

Stack Overflow用户

发布于 2015-08-26 09:03:46

虽然ThiefMaster设法让我通过了身份验证,但是这次它给了我一个不同的错误(415个不受支持的媒体类型),所以我决定采取不同的方法,它可以工作。

代码语言:javascript
复制
var request = (HttpWebRequest)WebRequest.Create("https://gateway.watsonplatform.net/personality-insights/api/v2/profile");

        var postData = getTestWords(@"D:\Userfiles\tchaiyaphan\Documents\API and Intelligence\storyTestWord.txt");

        var data = Encoding.ASCII.GetBytes(postData);

        request.Method = "POST";
        request.ContentType = "text/plain";
        request.ContentLength = data.Length;
        request.Credentials = new NetworkCredential(username, password);

        using (var stream = request.GetRequestStream())
        {
            stream.Write(data, 0, data.Length);
        }

        var response = (HttpWebResponse)request.GetResponse();

        var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32220604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档