6

我想使用 odata 类型提供程序,但在编译时会导致下一个错误:(407) proxy authentication required。设计时没有错误。有人知道如何在类型提供程序中设置代理吗?示例代码:

open Microsoft.FSharp.Data.TypeProviders
type db = ODataService<"http://ebayodata.cloudapp.net/">
[<EntryPoint>]
     let main argv=
           let eBay = db.GetDataContext()
           0
4

2 回答 2

2

这篇博客文章提到了一些可能涵盖代理的示例代码。

Freebase 类型提供程序可与 .NET 3.5、.NET 4.0、.NET 4.5、Silverlight 和便携式编程一起使用。在某些情况下可能需要代理。Tests\ProjectsUsingTypeProvider.sln 中的项目显示了这些不同情况的一些示例库。

您可能还希望专门查看此文件

于 2012-12-13T13:42:54.363 回答
0

尝试按如下方式指定默认 Web 代理:

open System.Net // for WebProxy etc.
open Microsoft.FSharp.Data.TypeProviders

// put here actual proxy address
let proxy = new WebProxy("http://192.168.1.1:3128") :> IWebProxy
// put here your credentials if needed
proxy.Credentials <- NetworkCredential("proxy_user", "password")
// set up a default proxy
WebRequest.DefaultWebProxy <- proxy

// here the default proxy will be used
type db = ODataService<"http://ebayodata.cloudapp.net/">

或者您可以尝试使用在 IE 中指定的代理,如下所示:

WebRequest.DefaultWebProxy <- WebRequest.GetSystemWebProxy()
WebRequest.DefaultWebProxy.Credentials <- CredentialCache.DefaultNetworkCredentials

如果您在编译时出现错误,那么这可能是因为 F# 编译器 (Fsc.exe) 无法连接到代理服务器。您可以通过修改来解决此问题Fsc.exe.config,只需在该部分下添加以下文本configuration

  <system.net>
    <defaultProxy useDefaultCredentials="true" />    
  </system.net>
于 2015-05-14T06:36:45.170 回答