Команда для загрузки файла кроме [закрытого] Wget

Тесту MS создали хорошую функцию в этом, делает членов парламента, не занимающих официального поста и методы доступными в проекте путем создания файла, названного VSCodeGenAccessors

[System.Diagnostics.DebuggerStepThrough()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TestTools.UnitTestGeneration", "1.0.0.0")]
    internal class BaseAccessor
    {

        protected Microsoft.VisualStudio.TestTools.UnitTesting.PrivateObject m_privateObject;

        protected BaseAccessor(object target, Microsoft.VisualStudio.TestTools.UnitTesting.PrivateType type)
        {
            m_privateObject = new Microsoft.VisualStudio.TestTools.UnitTesting.PrivateObject(target, type);
        }

        protected BaseAccessor(Microsoft.VisualStudio.TestTools.UnitTesting.PrivateType type)
            :
                this(null, type)
        {
        }

        internal virtual object Target
        {
            get
            {
                return m_privateObject.Target;
            }
        }

        public override string ToString()
        {
            return this.Target.ToString();
        }

        public override bool Equals(object obj)
        {
            if (typeof(BaseAccessor).IsInstanceOfType(obj))
            {
                obj = ((BaseAccessor)(obj)).Target;
            }
            return this.Target.Equals(obj);
        }

        public override int GetHashCode()
        {
            return this.Target.GetHashCode();
        }
    }

С классами, которые получают из BaseAccessor

такой как

[System.Diagnostics.DebuggerStepThrough()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TestTools.UnitTestGeneration", "1.0.0.0")]
internal class SomeClassAccessor : BaseAccessor
{

    protected static Microsoft.VisualStudio.TestTools.UnitTesting.PrivateType m_privateType = new Microsoft.VisualStudio.TestTools.UnitTesting.PrivateType(typeof(global::Namespace.SomeClass));

    internal SomeClassAccessor(global::Namespace.Someclass target)
        : base(target, m_privateType)
    {
    }

    internal static string STATIC_STRING
    {
        get
        {
            string ret = ((string)(m_privateType.GetStaticField("STATIC_STRING")));
            return ret;
        }
        set
        {
            m_privateType.SetStaticField("STATIC_STRING", value);
        }
    }

    internal int memberVar    {
        get
        {
            int ret = ((int)(m_privateObject.GetField("memberVar")));
            return ret;
        }
        set
        {
            m_privateObject.SetField("memberVar", value);
        }
    }

    internal int PrivateMethodName(int paramName)
    {
        object[] args = new object[] {
            paramName};
        int ret = (int)(m_privateObject.Invoke("PrivateMethodName", new System.Type[] {
                typeof(int)}, args)));
        return ret;
    }
5
задан Peter Mortensen 2 January 2010 в 21:40
поделиться

11 ответов

. Вы можете использовать следующую команду:

curl -O http://www.domain.com/file.flv

5
ответ дан 18 December 2019 в 05:33
поделиться
echo -ne "GET /path/to/file HTTP/1.0\r\nHost: www.somesite.com\r\n\r\n" | nc www.somesite.com 80 | perl -pe 'BEGIN { while (<>) { last if $_ eq "\r\n"; } }'
7
ответ дан 18 December 2019 в 05:33
поделиться

Bash , скомпилированный с помощью - enable-net-redirections довольно мощный. ( Zsh имеет аналогичные функции.) Черт возьми, я даже добавлю сюда HTTP Basic Auth.

Конечно, это не очень хороший клиент HTTP / 1.1; он не поддерживает, например, фрагментированное кодирование. Но на практике это довольно редко.

read_http() {
    local url host path login port
    url="${1#http://}"
    host="${url%%/*}"
    path="${url#${host}}"
    login="${host%${host#*@}}"
    host="${host#${login}@}"
    port="${host#${host%:*}}"
    host="${host%:${port}}"
    (
        exec 3<>"/dev/tcp/${host}/${port:-80}" || exit $?
        >&3 echo -n "GET ${path:-/} HTTP/1.1"$'\r\n'
        >&3 echo -n "Host: ${host}"$'\r\n'
        [[ -n ${login} ]] &&
        >&3 echo -n "Authorization: Basic $(uuencode <<<"${login}")"$'\r\n'
        >&3 echo -n $'\r\n'
        while read line <&3; do
            line="${line%$'\r'}"
            echo "${line}" >&2
            [[ -z ${line} ]] && break
        done
        dd <&3
    )
}

OTOH, если у вас установлен Perl LWP , он должен поставляться с образцом двоичного файла с именем GET

5
ответ дан 18 December 2019 в 05:33
поделиться

lynx -source

3
ответ дан 18 December 2019 в 05:33
поделиться
curl -C - -O http://www.url.com
3
ответ дан 18 December 2019 в 05:33
поделиться

сценарий Python:

#!/usr/bin/env python
import os,sys,urllib
f = open (os.path.basename (sys.argv[1]), 'w')
f.write (urllib.urlopen (sys.argv[1]).read ())
f.close ()

где sys.argv [1] - это интересующий вас URL.

3
ответ дан 18 December 2019 в 05:33
поделиться

Если вы пытаетесь загрузить файл с хоста, доступ к которому прошел аутентификацию, попробуйте использовать scp . Это похоже на обычную копию, но делается через туннель ssh. Я обнаружил, что хосты, которые разрешают "ограниченный ssh", часто по-прежнему разрешают scp .

scp user@myhost.com:folder/file.flv ./

Вам нужно будет предоставить свои учетные данные. Дополнительную информацию см. В документации scp .

3
ответ дан 18 December 2019 в 05:33
поделиться

Другой инструмент, который делает похожие вещи, - это snarf .

2
ответ дан 18 December 2019 в 05:33
поделиться

Различные способы,

  1. Python - Как не получать данные по HTTP
1
ответ дан 18 December 2019 в 05:33
поделиться

Другой возможной альтернативой является aria2 .

0
ответ дан 18 December 2019 в 05:33
поделиться

Использовать scp.

использование: scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P порт] [-S программа]
[[ user @ ] host1:] file1 ... [[ user @ ] host2:] file2

1
ответ дан 18 December 2019 в 05:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: