Иконка ресурса

FREE Twitch : 1.0.0 1.0.0

Нет прав для скачивания
C#:
---
layout: forums
title: 'Solved - Using HttpWebRequest/HttpWebResponse? (C#)'
breadcrumbs:
 - "Plugin Development": "/forums/plugin-development.105/"
 - "Rust Development": "/forums/rust-development.4/"
---
<div class="titleBar">
    <h1>
        <span class="prefix prefixGreen">Solved</span> <a href="{{ '/threads/using-httpwebrequest-httpwebresponse-c.17354/' | prepend: site.baseurl }}">Using HttpWebRequest/HttpWebResponse? (C#)</a>
    </h1>
    <p id="pageDescription" class="muted">Discussion in '<a href="{{ '/forums/rust-development.4/' | prepend: site.baseurl }}">Rust Development</a>' started by <a class="username"
            dir="auto">Murky</a>, <a href="{{ '/threads/using-httpwebrequest-httpwebresponse-c.17354/' | prepend: site.baseurl }}"><span class="DateTime" title="Apr 14, 2016 at 3:24 PM">Apr 14,
                2016</span></a>.
    </p>
</div>
<ol class="messageList" id="messageList">
    <li id="post-196435" class="message" data-author="Murky">
        <div class="messageUserInfo">
            <div class="messageUserBlock">
                <div class="avatarHolder">
                    <span class="helper"></span>
                    <a class="avatar Avm" data-avatarhtml="true"><img src="{{ '/assets/styles/oxide/logo.og.png' | prepend: site.baseurl }}" width="96" height="96" alt="Murky" /></a>
                </div>
                <h3 class="userText">
                    <a class="username" dir="auto">Murky</a>
                </h3>
                <span class="arrow"></span>
            </div>
        </div>
        <div class="messageInfo primaryContent">
            <div class="messageContent">
                <article>
                    <blockquote class="messageText SelectQuoteContainer ugc baseHtml"> Like the title says, i wonder if i can use System.Net HttpWebRequest and HttpWebResponse, or am i restricted to
                        using webrequest which i found in the Oxide documentation.<br />
                        <br /> I wonder because i started on a plugin that depends on the derived classes. I took it for granted that it is supported. But when i try to test the plugin it doesnt
                        load.<br />
                        <br /> If i comment out the parts using the HttpWebRequest and HttpWebResponse classes it seems to work..<br />
                        <br /> Here is the plugin:<br />
                        <br />
                        <div class="bbCodeBlock bbCodeCode">
                            <div class="type">Code:</div>
                            {% raw %}<pre>using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.IO;
using System.Net;namespace Oxide.Plugins
{
    [Info(&quot;TwitchAuth&quot;, &quot;Murky&quot;, &quot;0.0.1a&quot;)]
    [Description(&quot;Toggle your admin status&quot;)]
    class Twitch : RustPlugin
    {        static string AccountName = &quot;INSERT_TWITCH_USERNAME&quot;;
        static string ErrorMessage = &quot;Connect Steam to Twitch and follow @ twitch.tv/&quot; + AccountName + &quot; to access this server.&quot;;        void CanClientLogin(Network.Connection connection)
        {
            if (!HasAccess(connection.userid))
            {
                ConnectionAuth.Reject(connection, ErrorMessage);
            }
            else
            {
                Puts(connection.userid + &quot; allowed.&quot;);
            }
        }
        private bool HasAccess(ulong steamID)
        {
            string username;
            if ((username = HasSteamConnected(steamID)) != null)
            {
                if (IsFollowing(username))
                {
                    return true;
                }
                else
                {
                    Puts(steamID + &quot; tried to connect but is not following you.&quot;);
                    // Is not following
                    return false;
                }
            }
            else
            {
                // Not connected Steam to Twitch
                Puts(steamID + &quot; tried to connect but does not have Steam connected to Twitch.&quot;);
                return false;
            }
        }
        private bool IsFollowing(string username)
        {
            var json = ConsumeJson(&quot;https://api.twitch.tv/kraken/users/&quot; + username + &quot;/follows/channels/&quot; + AccountName);
            if (json != null)
            {
                return true;
            }
            return false;
        }
        string HasSteamConnected(ulong steamiD)
        {
            var json = ConsumeJson(&quot;https://api.twitch.tv/api/steam/&quot; + steamiD);
            if (json != null)
            {
                dynamic userInfo = (JObject)JsonConvert.DeserializeObject(json);
                return userInfo[&quot;name&quot;];
            }
            return null;
        }
        string ConsumeJson(string url)
        {
            try
            {
                HttpWebRequest WebReq = (HttpWebRequest)WebRequest.Create(url);
                HttpWebResponse WebResp = (HttpWebResponse)WebReq.GetResponse();
                if (WebResp.StatusCode == HttpStatusCode.OK)
                {
                    using (var stream = WebResp.GetResponseStream())
                    {
                        using (var streamReader = new StreamReader(stream))
                        {
                            return streamReader.ReadToEnd();
                        }
                    }
                }
            }
            // Do somethins better here.
            catch { } // best effort
            return null;
        }
    }
}
</pre>{% endraw %}
                        </div>Dont mind the messy code, i havent started refactoring it, it is just a quick mockup. <div class="messageTextEndMarker">&nbsp;</div>
                    </blockquote>
                </article>
            </div>
            <div class="messageMeta ToggleTriggerAnchor">
                <div class="privateControls">
                    <span class="item muted">
                        <span class="authorEnd"><a class="username author" dir="auto">Murky</a>,</span>
                        <a href="{{ '/threads/using-httpwebrequest-httpwebresponse-c.17354/' | prepend: site.baseurl }}" title="Permalink" class="datePermalink"><span class="DateTime"
                                title="Apr 14, 2016 at 3:24 PM">Apr 14, 2016</span></a>
                    </span>
                </div>
                <div class="publicControls">
                    <a href="{{ '/threads/using-httpwebrequest-httpwebresponse-c.17354/' | prepend: site.baseurl }}" title="Permalink" class="item muted postNumber hashPermalink OverlayTrigger"
                        data-href="posts/196435/permalink">#1</a>
                </div>
            </div>
        </div>
    </li>
    <li id="post-196439" class="message staff" data-author="Wulf">
        <div class="messageUserInfo">
            <div class="messageUserBlock">
                <div class="avatarHolder">
                    <span class="helper"></span>
                    <a class="avatar Avm" data-avatarhtml="true"><img src="{{ '/assets/styles/oxide/logo.og.png' | prepend: site.baseurl }}" width="96" height="96" alt="Wulf" /></a>
                </div>
                <h3 class="userText">
                    <a class="username" dir="auto" itemprop="name">Wulf</a>
                    <em class="userBanner bannerRed wrapped" itemprop="title"><span class="before"></span><strong>Community Admin</strong><span class="after"></span></em>
                </h3>
                <span class="arrow"></span>
            </div>
        </div>
        <div class="messageInfo primaryContent">
            <div class="messageContent">
                <article>
                    <blockquote class="messageText SelectQuoteContainer ugc baseHtml"> No, you can&#039;t use System.IO or System.Net as plugins are sandboxed. Oxide provides a webrequest wrapper
                        though, see <a href="http://docs.oxidemod.org/rust/#web-requests" target="_blank" class="externalLink">Rust</a>. <div class="messageTextEndMarker">&nbsp;</div>
                    </blockquote>
                </article>
            </div>
            <div class="messageMeta ToggleTriggerAnchor">
                <div class="privateControls">
                    <span class="item muted">
                        <span class="authorEnd"><a class="username author" dir="auto">Wulf</a>,</span>
                        <a href="{{ '/threads/using-httpwebrequest-httpwebresponse-c.17354/#post-196439' | prepend: site.baseurl }}" title="Permalink" class="datePermalink"><span class="DateTime"
                                title="Apr 14, 2016 at 3:29 PM">Apr 14, 2016</span></a>
                    </span>
                </div>
                <div class="publicControls">
                    <a href="{{ '/threads/using-httpwebrequest-httpwebresponse-c.17354/#post-196439' | prepend: site.baseurl }}" title="Permalink"
                        class="item muted postNumber hashPermalink OverlayTrigger" data-href="posts/196439/permalink">#2</a>
                </div>
            </div>
        </div>
    </li>
    <li id="post-196440" class="message" data-author="Murky">
        <div class="messageUserInfo">
            <div class="messageUserBlock">
                <div class="avatarHolder">
                    <span class="helper"></span>
                    <a class="avatar Avm" data-avatarhtml="true"><img src="{{ '/assets/styles/oxide/logo.og.png' | prepend: site.baseurl }}" width="96" height="96" alt="Murky" /></a>
                </div>
                <h3 class="userText">
                    <a class="username" dir="auto">Murky</a>
                </h3>
                <span class="arrow"></span>
            </div>
        </div>
        <div class="messageInfo primaryContent">
            <div class="messageContent">
                <article>
                    <blockquote class="messageText SelectQuoteContainer ugc baseHtml"> Ok thanks! <div class="messageTextEndMarker">&nbsp;</div>
                    </blockquote>
                </article>
            </div>
            <div class="messageMeta ToggleTriggerAnchor">
                <div class="privateControls">
                    <span class="item muted">
                        <span class="authorEnd"><a class="username author" dir="auto">Murky</a>,</span>
                        <a href="{{ '/threads/using-httpwebrequest-httpwebresponse-c.17354/#post-196440' | prepend: site.baseurl }}" title="Permalink" class="datePermalink"><span class="DateTime"
                                title="Apr 14, 2016 at 3:31 PM">Apr 14, 2016</span></a>
                    </span>
                </div>
                <div class="publicControls">
                    <a href="{{ '/threads/using-httpwebrequest-httpwebresponse-c.17354/#post-196440' | prepend: site.baseurl }}" title="Permalink"
                        class="item muted postNumber hashPermalink OverlayTrigger" data-href="posts/196440/permalink">#3</a>
                </div>
            </div>
        </div>
    </li>
</ol>

Автор
15FPS
Скачиваний
0
Просмотры
1
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок
Сверху