首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >德尔福iOS IPv6应用商店拒绝

德尔福iOS IPv6应用商店拒绝
EN

Stack Overflow用户
提问于 2016-08-24 03:47:31
回答 2查看 1.3K关注 0票数 0

我们正在使用RADStudio10.0西雅图构建一个通过web服务获取数据的iOS应用程序。由于苹果要求所有应用程序从2016年6月1日起支持IPv6,我们的应用程序更新被拒绝了。

我们使用WSDL导入程序在RAD中创建web服务类,然后调用web服务。当应用程序连接到IPv6网络时,它会抛出一个Socket Error #51 Network is unreachable...

有人知道我们怎么解决这个问题吗?

EN

回答 2

Stack Overflow用户

发布于 2016-09-12 13:05:04

试着用这个功能:

代码语言:javascript
复制
function GetHost(Host: String): Boolean;
begin
  result := '';
  try
    GStack.ResolveHost(Host, TIdIPVersion.Id_IPv6);
    result := '[' + Host + ']';
  except
    GStack.ResolveHost(Host, TIdIPVersion.Id_IPv4);
    result := Host;
  end;
end;

在中添加使用 "IdStack“和"IdGlobal”

您必须传递您的主机(例如,www.google.com),而func返回一个带有或不带“[”的结果。

现在,你必须用它..。'http://‘+ getHost('www.google.com')

如果您在IPV6网络中,最后一个字符串将是(http://[www.google.com])

票数 0
EN

Stack Overflow用户

发布于 2016-10-07 12:08:43

使用前面的答案,我想出了这段代码,它适合我。我可以输入完整的soap,它返回一个正确的IPV4 of IPV6 URL。在“使用”部分中包括“idURI”。

代码语言:javascript
复制
class function TPortalTools.GetRealUrl(Url: string): string;
var
  IdURI: TIdURI;
begin
  TIdStack.IncUsage;
  IdURI := TIdURI.Create(Url);
  try
    try
      GStack.ResolveHost(IdURI.Host, TIdIPVersion.Id_IPv6);
      IdURI.IPVersion := TIdIPVersion.Id_IPv6;
    except
      IdURI.IPVersion := TIdIPVersion.Id_IPv4; // Just in case.
    end;

    // Put it back together.
    Result := IdURI.GetFullURI([]);
  finally
    FreeAndNil(IdURI);
    TIdStack.DecUsage;
  end;
end;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39114096

复制
相关文章

相似问题

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