将Twitterizer与C#桌面应用程序一起使用 “请求名称不存在.".

本文关键字:请求 不存在 quot Twitterizer 桌面 应用程序 一起 | 更新日期: 2023-09-27 18:34:48

我正在尝试向桌面应用程序添加一个按钮,该按钮会将图片发布到Twitter。 我在网上找到了一些使用 ASP.net 的示例代码,但似乎当我尝试在 C# 桌面应用程序中使用它时,我收到请求和响应名称的错误。 有谁知道为什么请求和响应名称在 ASP 中不会导致任何问题,但在 C# 中会导致任何问题。 我需要创建一个 httpRequest/Response 吗?

这是我的代码。 感谢您提供的任何帮助!

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Twitterizer;
using System.IO;
using System.Web;
using System.Web.UI.WebControls;
using System.Web.UI;
    namespace TwitterTestApp
    {
        class Twitter
        {
        public Twitter()
        {
        }
        public void PostPicture()
        { 
            string oauth_consumer_key = "123456789";
            string oauth_consumer_secret = "abdefg123456";
            if (Request["oauth_token"] == null)
            {
                OAuthTokenResponse reqToken = OAuthUtility.GetRequestToken(oauth_consumer_key,      oauth_consumer_secret, Request.Url.AbsoluteUri);
            Response.Redirect(string.Format("http://twitter.com/oauth/authorize?oauth_token={0}", reqToken.Token));
            }
            else
            {
                string requestToken = Request["oauth_token"].ToString();
                string pin = Request["oauth_verifier"].ToString();
                var tokens = OAuthUtility.GetAccessToken(oauth_consumer_key, oauth_consumer_secret, requestToken, pin);
                OAuthTokens accesstoken = new OAuthTokens()
                {
                    AccessToken = tokens.Token,
                    AccessTokenSecret = tokens.TokenSecret,
                    ConsumerKey = oauth_consumer_key,
                    ConsumerSecret = oauth_consumer_secret
                };
                byte[] photo = File.ReadAllBytes(@"C:'img.jpg");
                TwitterResponse<TwitterStatus> response = TwitterStatus.UpdateWithMedia(accesstoken, "img", photo);
                if (response.Result == RequestResult.Success)
                {
                    Response.Write("This is YOUR PAGE");
                }
                else
                {
                    Response.Write("Try some other time");
                }
            }
        }
    }
}

将Twitterizer与C#桌面应用程序一起使用 “请求名称不存在.".

RequestResponse都应该是变量。当您复制此代码时,您可能尚未全部获得。这两个变量都应该有定义,但没有,所以 VS 显示一个错误,指出它们不存在。

此代码在纯 C# 中无法开箱即用,因为 RequestResponse 都是 ASP.NET 中的变量。请求是客户端发送到 Web 服务器的内容,响应是它发回的内容。

编辑:在多看了一下你的代码后,这根本不起作用。这被设计为 ASP.NET 应用程序中的页面。您的桌面应用程序不是服务器,没有理由尝试发送"响应"。

查看WebRequest,您可以使用它向 Twitter API 发送 POST 请求。